Repository navigation
[Bug]: 6 vulnerabilities found in bun audit via transitive dependencies (fast-uri, qs) #3313
Copy link
Copy link
Closed
Labels
bugSomething isn't workingSomething isn't workinginstallInstallation or packagingInstallation or packaging
Description
Client or integration
Codex App
Area
Installation or packaging
Summary
Running bun audit on the dev branch reports 6 vulnerabilities (4 High, 2 Moderate) coming from transitive dependencies of @modelcontextprotocol/sdk:
fast-uri(High):
- GHSA-5jgf-p345-68v8: Host confusion via skipped IDN canonicalization on scheme-relative references
- GHSA-f65p-4m7j-42xc: SSRF via malformed IPv6 normalization
- GHSA-fph4-wmhf-6fwf: SSRF via repeated hostname percent-decoding
- GHSA-jqff-g426-hqxp: Host confusion via percent-encoded scheme normalization
Current lockfile resolves tofast-uri@3.1.4(due to"fast-uri": "^3.1.5"inoverrides). Fixed in>=3.1.6.
qs(Moderate):
- GHSA-x5fp-wj9c-mxmx: qs array-limit bypass via bracket-key comma parsing
- GHSA-4mjr-xmp4-gh2g: Denial of Service via Attacker Controlled isBuffer
Current lockfile resolves toqs@6.14.2via@modelcontextprotocol/sdk->express->body-parser->qs. Fixed in>=6.15.4/6.16.0.
Reproduction
- Check out the latest
devbranch:git checkout dev - Run package manager audit:
bun audit - Observe 6 vulnerabilities reported (4 high in fast-uri, 2 moderate in qs).
Suggested remediation in package.json overrides:
"overrides": {
"@hono/node-server": "2.1.0",
"fast-uri": "^3.1.7",
"hono": "4.13.1",
"ip-address": "^10.4.0",
"qs": "^6.16.0"
}Version
2.41.0 (dev commit af314b0)
Operating system
macOS 15.5
Logs or error output
qs >=6.14.2 <=6.15.3
@modelcontextprotocol/sdk › express › body-parser › qs
moderate: qs array-limit bypass via bracket-key comma parsing - https://github.com/advisories/GHSA-x5fp-wj9c-mxmx
moderate: qs: Denial of Service via Attacker Controlled isBuffer - https://github.com/advisories/GHSA-4mjr-xmp4-gh2g
fast-uri >=3.1.3 <3.1.6
@modelcontextprotocol/sdk › ajv › fast-uri
high: fast-uri vulnerable to host confusion via skipped IDN canonicalization on scheme-relative references - https://github.com/advisories/GHSA-5jgf-p345-68v8
high: fast-uri vulnerable to server-side request forgery via malformed IPv6 normalization - https://github.com/advisories/GHSA-f65p-4m7j-42xc
high: fast-uri vulnerable to server-side request forgery via repeated hostname percent-decoding - https://github.com/advisories/GHSA-fph4-wmhf-6fwf
high: fast-uri vulnerable to host confusion via percent-encoded scheme normalization - https://github.com/advisories/GHSA-jqff-g426-hqxp
6 vulnerabilities (4 high, 2 moderate)Checks
- I searched existing issues and documentation.
- I removed secrets, tokens, account details, request credentials, and personal data.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workinginstallInstallation or packagingInstallation or packaging
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…