Skip to content

Commit c199064

Browse files
os-steveclaude
andauthored
chore(deps): exempt GHSA-xcx6-jx8p-x3h5 (@azure/msal-node via tedious) until 2026-11-26 (#26486)
<!-- claude-projects-attribution: {"github_login":"os-steve"} --> _Requested by **Steve** · [project thread](https://claude.ai/code/project/chan_01FdL1XeUyvVNxLreh3F4Qi9?thread=cmsg_01FdL1XeUyvVNxLreh3F4Qi9WV2t4SJjcpQk4Wkqfp7kPN)_ Fixes #26428 ## 维护者速读 - 改了什么:在 `osv-scanner.toml` 加一条豁免,`GHSA-xcx6-jx8p-x3h5`,`ignoreUntil = 2026-11-26`(30 天)。只改这一个文件。 - 为什么改:定时 OSV 扫描从 10-21 起每天红,唯一的发现就是这条:`@azure/msal-node` 5.4.1,High。修复版是 7.1.0,但目前没有任何已发布的 `@azure/identity` 接受 msal-node 7(最新的 4.14.0 仍要求 `^6`),所以拿不到修复版。 - 风险:只出现在开发依赖树里,路径是 tedious(driver-sql 的可选 mssql peer)→ `@azure/identity` → msal-node,不进任何发布包。漏洞在授权码流程(`acquireTokenByCode`),tedious 不调用它。 - 回滚:revert 即可。到 11-26 豁免自动失效,扫描会重新报红。 ## What changes One `[[IgnoredVulns]]` entry in `osv-scanner.toml`. This PR carries no other change, per convention 3 (an exemption lands in its own PR, labelled `osv-exemption`). ## Why **What the scan shows.** Scheduled run 40442115529 (2026-10-27 03:05Z), OSV-Scanner v2.5.0 on `pnpm-lock.yaml`: ``` | https://osv.dev/GHSA-xcx6-jx8p-x3h5 | 7.5 | npm | @azure/msal-node | 5.4.1 | 7.1.0 | pnpm-lock.yaml | ``` **The advisory** (osv.dev): "MSAL Node authorization code flow may disclose parameters to an attacker-controlled endpoint", CWE-346. Affected from `5.0.0-beta.0` to before `7.1.0`. The workaround it names is passing only the auth code to `acquireTokenByCode`. **Why no fix can be taken today.** - The path in the lockfile is `tedious@18.6.2` → `@azure/identity@4.13.1` → `@azure/msal-node@5.4.1`. tedious is `driver-sql`'s optional `peerDependency`, so this repo installs it for its own tree and no published package carries it. - `npm view @azure/identity@4.14.0 dependencies.@azure/msal-node` gives `^6.0.0`, and every 6.x is inside the affected range. tedious 20.3.8, its latest, needs `@azure/identity ^4.13.1`. - The only way to reach 7.1.0 would be a pnpm override that forces msal-node a major past the range `@azure/identity` declares. This PR does not do that. **When to remove it.** Once a published `@azure/identity` accepts msal-node `>=7.1.0` and tedious resolves to it, bump instead and delete this entry. The 30-day `ignoreUntil` forces this decision to be looked at again. ## Also reported by the same scan, not changed here The scanner reports the existing `GHSA-hp3w-g68c-fv3c` entry (sprintf-js, `ignoreUntil = 2026-11-05`) as an **unused ignore**. osv.dev shows that advisory **withdrawn on 2026-10-22**, so the entry no longer matches anything, though `sprintf-js` 1.0.3 and 1.1.3 are still in the lockfile. It is left alone here: one exemption change per PR. It can be removed in its own PR, or it will drop out on its own date. ## Verification - `node scripts/check-osv-exemptions.mjs --self-test`: passes. - `node scripts/check-osv-exemptions.mjs`: `✓ 2 OSV exemption(s) in osv-scanner.toml: all carry an unexpired ignoreUntil within 90 days and a reason with an advisory link.` - OSV-Scanner itself is not run locally (its container image is not reachable from this session). This PR's `Validate Dependencies` run (triggered by `osv-scanner.toml`) is the measurement. Clause-②: no Metadata-protocol: none ## Human Minimum - [x] 1. Schemas start as Zod; `packages/spec` holds no runtime logic. (not touched) - [x] 2. Every name I added uses the casing for its kind. (none) - [x] 3. No formatter ran; `pnpm lint` passes. - [x] 4. One issue, one branch off an up-to-date `main`, one pull request. - [x] 5. A change that publishes carries a changeset. This PR publishes nothing, so it is labelled `skip-changeset`. - [x] 6. `packages/spec` touched: n/a. - [x] 7. No hand edits to `content/docs/references/`, `packages/*/CHANGELOG.md` or `content/docs/releases/`. - [x] 8. Title, body and comments are in English. - [x] The *Before Submitting* list in CONTRIBUTING.md is done. --- _Generated by [Claude Code](https://claude.ai/code/session_01ADHkmPhbmyqwyDkSjg13F7)_ Co-authored-by: Claude <noreply@anthropic.com>
1 parent 43714ca commit c199064

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

‎osv-scanner.toml‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,3 +89,8 @@
8989
id = "GHSA-hp3w-g68c-fv3c"
9090
ignoreUntil = 2026-11-05
9191
reason = "https://github.com/advisories/GHSA-hp3w-g68c-fv3c — no fixed sprintf-js exists (1.1.3, the latest release, is the last affected version), and it arrives only transitively through tedious 18.6.2 (driver-sql's optional mssql peer) and fengari 0.1.5 (under ioredis-mock, a service-cluster-redis devDependency), whose latest releases (tedious 20.3.3, fengari 0.1.5) still require ^1.1.3; remove when sprintf-js publishes a fix or both parents drop it."
92+
93+
[[IgnoredVulns]]
94+
id = "GHSA-xcx6-jx8p-x3h5"
95+
ignoreUntil = 2026-11-26
96+
reason = "https://github.com/advisories/GHSA-xcx6-jx8p-x3h5 — the only patched @azure/msal-node is 7.1.0, a major no published @azure/identity accepts yet (4.13.1 here and 4.14.0, the latest, both require ^6), and it arrives only transitively through tedious 18.6.2 (driver-sql's optional mssql peer, dev tree only) → @azure/identity; the flaw is in the authorization-code flow (acquireTokenByCode), which tedious's client-credential and managed-identity sign-in never calls; remove when @azure/identity accepts msal-node 7.1+ and tedious takes that release."

0 commit comments

Comments
 (0)