Repository navigation
fix(ci): exempt the three new undici advisories in the release toolchain - #1504
Conversation
The release-toolchain audit fails on three advisories published since the last green run - a TLS option drop in Agent, TLS 1.2 certificate-changing renegotiation, and WebSocket PONG buffering. All three are the copy this file already documents twice: undici 6.29.0 bundled inside npm 11.21.1, which @semantic-release/npm resolves from its npm ^11.6.2 range. Nothing here moves it, re-measured today: a bundled dependency is not a resolvable node, so an `overrides` entry leaves node_modules/npm/node_modules/ undici at 6.29.0, and npm 12.2.1 - the newest release - also publishes 6.29.0 inside its own tarball. The patched version is 6.29.1. Each entry carries its own argument rather than pointing at the first: the Agent one applies to npm's HTTP client during publish, where the peer is the registry and api.github.com and cannot choose the agent options; the renegotiation one needs a peer that renegotiates mid-connection, which Node disables by default; the WebSocket one is not instantiated at all, because the toolchain never opens a WebSocket. Measured after the change: `node release/audit.mjs` reports six exempt and nothing outside. Every one of them clears when npm ships undici >= 6.29.1 bundled, and the entries then fail the gate until they are deleted.
Coverage reportTotal coverage
Report generated by 🧪jest coverage report action from 53fd93e |
There was a problem hiding this comment.
Reviewed the full base...head diff - three new entries in the release toolchain's audit EXEMPT map (release/audit.mjs). The justifications are specific, name the bundled copy, and state why overrides cannot move it; the self-clearing behaviour (the gate fails once the advisory disappears) is the right shape for an exemption list.
- release/audit.mjs (GHSA-2m5v-pch6-74hx): the justification rests on "no part of that exchange lets a peer choose the agent options", but the affected path is npm's own HTTP client, whose Agent and its TLS options come from operator configuration - the same npm_config_proxy / HTTPS_PROXY surface the ip-address entry below treats as reachable input for this repo. A proxy-configured publish therefore can supply the agent options this advisory concerns. Either classify this one as RISK ACCEPTANCE on the publish path the way GHSA-qrxm-fqhp-jwvm is, or spell out why a configured proxy cannot reach it.
- CI reports no check contexts yet at this head (pending).
1 finding above for review.
|
Closing rather than merging: exemptions are for advisories that cannot be fixed and are being lived with, and the operator's direction is to wait for the upstream fix rather than add three more entries ahead of one. For the record, so the next reader does not re-derive it: undici is patched at 6.29.1, a bundled dependency is not a resolvable node so The |
|
Reopened - the operator's point is that this is the blocker for a merge in flight (#1503), not a proactive exemption. The distinction that held: an exemption is worth adding where a merge is waiting on it, and not worth adding in repos with nothing to push until the upstream fix lands. Nothing else changed: the branch is the same commit, and |
The
Audit the release toolchainstep fails on #1503 and onmainat 62fd077 - three undici advisories published since the last green run. Not related to any diff in flight; every PR opened now hits it.All three are the copy
release/audit.mjsalready documents twice: undici 6.29.0 bundled inside npm 11.21.1, reached through@semantic-release/npm'snpm ^11.6.2range. Re-measured today rather than assumed:overridesentry leavesnode_modules/npm/node_modules/undiciat 6.29.0;So no bump available to this repo clears them, and each entry carries its own argument rather than deferring to the first: the Agent one applies to npm's HTTP client during publish, where the peer is the registry and api.github.com and cannot pick the agent options; the renegotiation one needs a peer that renegotiates mid-connection, which Node disables by default; the WebSocket one is never instantiated, because the toolchain opens no WebSocket.
Every entry clears when npm ships undici >= 6.29.1 bundled, and then fails the gate until it is deleted.
The same three will hit
adapter,sas-language,utilsandvscode-extension, which carry the same script with their own lists - I can roll this out to them once this lands.