Skip to content

Service lockfile: body-parser 2.4.0, qs 6.17.1 - #202

Merged
Maurice1969DB merged 1 commit into
mainfrom
service-lockfile-body-parser
Nov 2, 2026
Merged

Maurice1969DB merged 1 commit into
mainfrom
service-lockfile-body-parser

Conversation

@Maurice1969DB

Copy link
Copy Markdown
Contributor

npm audit --omit=dev in service/ reported GHSA-27r3-jxmh-p828 (body-parser, high: denial of service through trailing bytes after a compressed body) and GHSA-6pq8-jhm2-2vcw (qs, moderate, in qs.stringify). The weekly audit workflow has failed on this step since 2026-10-26. Because the workflow is continue-on-error, its runs read as success.

Change

npm update body-parser qs --package-lock-only --omit=dev:

  • body-parser 2.3.0 → 2.4.0, with its nested content-type 2.0.0 → 2.1.0
  • qs 6.16.0 → 6.17.1

Nothing else moved. express stays at 5.2.1 and c2pa-node at 0.9.5. Express 5.3.0 (#183) would not have fixed this, because it still accepts body-parser ^2.3.0.

Plus one CHANGELOG entry under [Unreleased]. This is service/, so it reaches users through git pull and a rebuild, not through a tag.

Reachability (reasoned, not tested)

  • body-parser: only a caller with a valid token can reach it. The Bearer check (server.js:901) runs before express.json (server.js:960).
  • qs: the service never calls it, and Express only uses it to parse.

Not fixed

minimatch < 11.0.1 (moderate) is still reported. It is reached only via unzipper → fstream → rimraf → glob on c2pa-node's install path. glob 7 requires minimatch ^3.1.1, so only an overrides entry would move it. The audit step stays red on that one.

Verified locally

  • Rebuilt container holds body-parser 2.4.0 and qs 6.17.1
  • php bin/e2e.php / bin/verify.sh: trusted, Article 50 mark intact
  • Integration against the live service: 217 passed / 23 skipped, no failures
  • composer check: 528 passed / 7 skipped, deptrac 0 violations

npm audit --omit=dev reported GHSA-27r3-jxmh-p828 (body-parser, high:
DoS through trailing bytes after a compressed body) and GHSA-6pq8-jhm2-2vcw
(qs, moderate, in qs.stringify). The weekly audit workflow failed on them
from 2026-10-26; being continue-on-error, its run read as success.

npm update body-parser qs --package-lock-only --omit=dev: body-parser
2.3.0 -> 2.4.0 with its nested content-type 2.0.0 -> 2.1.0, and qs
6.16.0 -> 6.17.1, nothing else; express 5.2.1 and c2pa-node 0.9.5
unchanged. Express 5.3.0 (#183) would not have done this: it still
accepts body-parser ^2.3.0.

Reasoned, not tested: the body-parser flaw is reachable only with a valid
token, since the Bearer check (server.js:901) runs before express.json
(server.js:960); the service never calls qs, and Express only parses.

Left: minimatch < 11.0.1 (moderate), reached only via
unzipper -> fstream -> rimraf -> glob on c2pa-node's install path; glob 7
requires minimatch ^3.1.1, so only an override would move it.

Rebuilt and verified: the container holds body-parser 2.4.0 and qs 6.17.1;
integration 217 passed / 23 skipped, no failures; bin/e2e.php trusted,
Article 50 mark intact; composer check 528 passed / 7 skipped.
@Maurice1969DB
Maurice1969DB merged commit d2c15d0 into main Nov 2, 2026
39 of 40 checks passed
@Maurice1969DB
Maurice1969DB deleted the service-lockfile-body-parser branch November 2, 2026 08:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant