You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug]: 6 vulnerabilities found in bun audit via transitive dependencies (fast-uri, qs) #3313
GHSA-jqff-g426-hqxp: Host confusion via percent-encoded scheme normalization
Current lockfile resolves to fast-uri@3.1.4 (due to "fast-uri": "^3.1.5" in overrides). Fixed in >=3.1.6.
GHSA-4mjr-xmp4-gh2g: Denial of Service via Attacker Controlled isBuffer
Current lockfile resolves to qs@6.14.2 via @modelcontextprotocol/sdk -> express -> body-parser -> qs. Fixed in >=6.15.4 / 6.16.0.
Reproduction
Check out the latest dev branch: git checkout dev
Run package manager audit: bun audit
Observe 6 vulnerabilities reported (4 high in fast-uri, 2 moderate in qs).
설명
이 이슈는 지금 dev(HEAD af314b0a7, package 2.41.0)에서 bun audit를 돌리면 취약점 6건(High 4, Moderate 2)이 나온다는 제보입니다. 직접 의존성이 아니라 @modelcontextprotocol/sdk@1.30.0 아래로 들어오는 전이 패키지입니다. High 네 건은 ajv → fast-uri 경로이고, Moderate 두 건은 express → body-parser → qs 경로입니다. 이슈 본문의 재현 명령과 advisory 링크를 같은 checkout에서 다시 돌려 보면, 지금 lock도 fast-uri@3.1.5와 qs@6.15.3으로 잡혀 있고 bun audit 결과도 6건 그대로입니다. 제보의 버전 줄(af314b0)과 HEAD가 같습니다.
package.json의 overrides를 보면 이미 "fast-uri": "^3.1.5"가 있습니다. 예전에 올려 둔 핀인데, 고정 하한이 취약 구간 안(>=3.1.3 <3.1.6)에 있어서 lock이 3.1.5로 멈춥니다. 고친 버전은 >=3.1.6이고, 이슈가 제안한 ^3.1.7이면 그 위로 올라갑니다. qs는 overrides에 아예 없습니다. lock은 6.15.3이고, advisory는 array-limit bypass가 >=6.14.2 <=6.15.3, DoS는 <6.16.0이라 ^6.16.0(또는 고정 6.16.0)이 필요합니다. @hono/node-server2.1.0, hono4.13.1, ip-address^10.4.0 같은 기존 override는 이 이슈와 무관하니 건드리지 않는 게 맞습니다.
영향 범위는 “앱이 지금 바로 뚫린다”보다 “감사/릴리스 위생이 빨간불”에 가깝습니다. fast-uri는 MCP SDK가 JSON Schema 검증용 ajv를 쓸 때 URI를 다루는 쪽이고, qs는 express body-parser가 쿼리/폼을 파싱할 때 씁니다. OpenCodex가 MCP SDK를 게이트웨이·툴 경로에 묶고 있으므로, 외부에서 넘어오는 URI·쿼리 입력이 있으면 advisory가 말하는 host confusion / SSRF / array-limit / isBuffer DoS가 이론상 닿을 수 있습니다. 그래도 제품 기능 회귀를 고치는 버그픽스라기보다, overrides + lock 재생성으로 끝내는 짧은 보안 패치 열차입니다. types.ts/config.ts 분할과도 무관하고, 지금 dev tip의 Cursor/Kiro/release 열차와도 파일이 겹치지 않습니다.
고치는 방법은 이슈가 이미 적어 둔 그대로가 가장 싸습니다. package.json overrides에서 fast-uri를 ^3.1.7(최소 ^3.1.6)로 올리고, qs를 ^6.16.0으로 추가한 뒤 bun install로 bun.lock을 다시 만들고 bun audit가 0건이 되는지 확인하면 됩니다. SDK 메이저 업은 이 이슈 범위가 아닙니다. bun audit fix만 돌리면 override 의도(hono 핀 등)와 어긋날 수 있으니, 손으로 overrides를 고치고 lock만 맞추는 PR이 안전합니다. 테스트는 새 유닛이 거의 필요 없고, 기존 CI + audit 클린 출력이 충분합니다. 같은 내용의 열린 PR은 지금 스캔 기준으로 없습니다.
우선순위 62는 “싸게 닫을 수 있는 감사 빨간불” 기준입니다. 사용자 대면 기능 장애(#3305 카탈로그 타임아웃 같은 것)보다 낮고, 릴리스 노트에 남기기 좋은 위생 패치보다는 높습니다. 2.41.0 라인에 바로 올려도 되고, preview 태그 전에만 넣어도 됩니다. 다만 overrides를 방치하면 다음 bun audit·의존성 봇·보안 스캔이 같은 6건을 계속 울립니다.
package.json overrides - fast-uri가 지금 ^3.1.5라 lock이 취약 3.1.5에 고정된다. ^3.1.7(또는 최소 ^3.1.6)로 올려야 한다
package.json overrides - qs 항목이 없다. ^6.16.0을 추가해야 GHSA-x5fp-wj9c-mxmx / GHSA-4mjr-xmp4-gh2g가 사라진다
bun.lock fast-uri@3.1.5 - @modelcontextprotocol/sdk → ajv → fast-uri 경로. High 4건의 실제 해석 버전이다
bun.lock qs@6.15.3 - @modelcontextprotocol/sdk → express → body-parser → qs 경로. Moderate 2건의 실제 해석 버전이다
경로 @modelcontextprotocol/sdk@1.30.0 - 직접 의존성은 유지하고 overrides만 올리는 편이 안전하다. SDK 메이저 업은 이 이슈에 태우지 말 것
메인테이너의 판단이 필요한 지점
overrides만 올린 작은 PR로 바로 머지할지, 아니면 MCP SDK 업그레이드 열차에 묶어 한 번에 정리할지
fast-uri/qs를 ^로 둘지, 패치 버전을 고정(3.1.7, 6.16.0)할지
2.41.0 안정 라인에 바로 넣을지, 다음 preview 전에만 넣을지
너의 추천
overrides에 fast-uri를 ^3.1.7로 올리고 qs^6.16.0을 추가한 뒤 lock을 재생성해 bun audit 0건을 확인하는 PR을 열고 이 이슈를 그 PR로 닫으세요. SDK 업그레이드나 hono 핀 변경은 이 열차에 넣지 마세요.
Fixed on dev by 2b5a38a (#3346), carrying @agentHits's overrides from #3314 with a Co-authored-by trailer. bun run audit:high is clean at both levels: 143 packages root, 81 GUI, no vulnerabilities. It ships in v2.41.0.
Activity
lidge-jun commentedon Sep 2, 2026
리뷰 · 우선순위 62 / 80
설명
이 이슈는 지금
dev(HEADaf314b0a7, package 2.41.0)에서bun audit를 돌리면 취약점 6건(High 4, Moderate 2)이 나온다는 제보입니다. 직접 의존성이 아니라@modelcontextprotocol/sdk@1.30.0아래로 들어오는 전이 패키지입니다. High 네 건은ajv→fast-uri경로이고, Moderate 두 건은express→body-parser→qs경로입니다. 이슈 본문의 재현 명령과 advisory 링크를 같은 checkout에서 다시 돌려 보면, 지금 lock도fast-uri@3.1.5와qs@6.15.3으로 잡혀 있고bun audit결과도 6건 그대로입니다. 제보의 버전 줄(af314b0)과 HEAD가 같습니다.package.json의overrides를 보면 이미"fast-uri": "^3.1.5"가 있습니다. 예전에 올려 둔 핀인데, 고정 하한이 취약 구간 안(>=3.1.3 <3.1.6)에 있어서 lock이3.1.5로 멈춥니다. 고친 버전은>=3.1.6이고, 이슈가 제안한^3.1.7이면 그 위로 올라갑니다.qs는 overrides에 아예 없습니다. lock은6.15.3이고, advisory는 array-limit bypass가>=6.14.2 <=6.15.3, DoS는<6.16.0이라^6.16.0(또는 고정6.16.0)이 필요합니다.@hono/node-server2.1.0,hono4.13.1,ip-address^10.4.0같은 기존 override는 이 이슈와 무관하니 건드리지 않는 게 맞습니다.영향 범위는 “앱이 지금 바로 뚫린다”보다 “감사/릴리스 위생이 빨간불”에 가깝습니다.
fast-uri는 MCP SDK가 JSON Schema 검증용ajv를 쓸 때 URI를 다루는 쪽이고,qs는 express body-parser가 쿼리/폼을 파싱할 때 씁니다. OpenCodex가 MCP SDK를 게이트웨이·툴 경로에 묶고 있으므로, 외부에서 넘어오는 URI·쿼리 입력이 있으면 advisory가 말하는 host confusion / SSRF / array-limit / isBuffer DoS가 이론상 닿을 수 있습니다. 그래도 제품 기능 회귀를 고치는 버그픽스라기보다, overrides + lock 재생성으로 끝내는 짧은 보안 패치 열차입니다. types.ts/config.ts 분할과도 무관하고, 지금devtip의 Cursor/Kiro/release 열차와도 파일이 겹치지 않습니다.고치는 방법은 이슈가 이미 적어 둔 그대로가 가장 싸습니다.
package.jsonoverrides에서fast-uri를^3.1.7(최소^3.1.6)로 올리고,qs를^6.16.0으로 추가한 뒤bun install로bun.lock을 다시 만들고bun audit가 0건이 되는지 확인하면 됩니다. SDK 메이저 업은 이 이슈 범위가 아닙니다.bun audit fix만 돌리면 override 의도(hono 핀 등)와 어긋날 수 있으니, 손으로 overrides를 고치고 lock만 맞추는 PR이 안전합니다. 테스트는 새 유닛이 거의 필요 없고, 기존 CI + audit 클린 출력이 충분합니다. 같은 내용의 열린 PR은 지금 스캔 기준으로 없습니다.우선순위 62는 “싸게 닫을 수 있는 감사 빨간불” 기준입니다. 사용자 대면 기능 장애(#3305 카탈로그 타임아웃 같은 것)보다 낮고, 릴리스 노트에 남기기 좋은 위생 패치보다는 높습니다. 2.41.0 라인에 바로 올려도 되고, preview 태그 전에만 넣어도 됩니다. 다만 overrides를 방치하면 다음
bun audit·의존성 봇·보안 스캔이 같은 6건을 계속 울립니다.package.json overrides -
fast-uri가 지금^3.1.5라 lock이 취약3.1.5에 고정된다.^3.1.7(또는 최소^3.1.6)로 올려야 한다package.json overrides -
qs항목이 없다.^6.16.0을 추가해야 GHSA-x5fp-wj9c-mxmx / GHSA-4mjr-xmp4-gh2g가 사라진다bun.lock
fast-uri@3.1.5-@modelcontextprotocol/sdk→ajv→fast-uri경로. High 4건의 실제 해석 버전이다bun.lock
qs@6.15.3-@modelcontextprotocol/sdk→express→body-parser→qs경로. Moderate 2건의 실제 해석 버전이다경로
@modelcontextprotocol/sdk@1.30.0- 직접 의존성은 유지하고 overrides만 올리는 편이 안전하다. SDK 메이저 업은 이 이슈에 태우지 말 것메인테이너의 판단이 필요한 지점
fast-uri/qs를^로 둘지, 패치 버전을 고정(3.1.7,6.16.0)할지너의 추천
overrides에
fast-uri를^3.1.7로 올리고qs^6.16.0을 추가한 뒤 lock을 재생성해bun audit0건을 확인하는 PR을 열고 이 이슈를 그 PR로 닫으세요. SDK 업그레이드나 hono 핀 변경은 이 열차에 넣지 마세요.이 댓글은 grok-bot이 작성했습니다
fix(deps): override fast-uri to ^3.1.7 and qs to ^6.16.0 to resolve C…
lidge-jun commentedon Sep 3, 2026
Fixed on dev by 2b5a38a (#3346), carrying @agentHits's overrides from #3314 with a Co-authored-by trailer. bun run audit:high is clean at both levels: 143 packages root, 81 GUI, no vulnerabilities. It ships in v2.41.0.
fix(deps): override fast-uri to ^3.1.7 and qs to ^6.16.0 to resolve C…
fix(deps): override fast-uri to ^3.1.7 and qs to ^6.16.0 to resolve C…