SEC2-051: postulo-chromium's dev chain locks web-ext 8.10.0 with sixteen open advisories (three critical), and CI runs no npm audit #32
Labels
No labels
bug
documentation
enhancement
performance
security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Postulo/postulo-chromium#32
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found on 2026-10-16 in a read-only security review of
postulo-chromiumatb6c1009, checked by a second, independent pass.Severity: Low · Category: Dependencies · Reference: CWE-1104 (Use of Unmaintained Third Party Components); OWASP A06:2021 (Vulnerable and Outdated Components)
Location:
package.json:16-18("web-ext": "^8.0.0","jsdom": "^30.0.1"),package-lock.json(node_modules/web-extat8.10.0).forgejo/workflows/ci.yml:19-35(npm ci,npm test,npm run build,npx web-ext lint,npm run package; no audit step)Issue
An
npm auditrun on 2026-10-16 againstpackage-lock.jsonreports 16 advisories (3 critical, 9 high, 4 moderate), all in theweb-ext8.x tree (shell-quoteandfx-runnercritical;adm-zip,node-forge,tmp,image-size,addons-linter,firefox-profile,@devicefarmer/adbkithigh;ajv,uuid,node-notifier,fast-urimoderate), plusbrace-expansionandsource-map-jswith direct fixes. npm's fix isweb-ext@10.8.0(semver-major) andnpm audit fixfor the rest. Nothing in the extension's shipped bundle comes from these packages:scripts/build.mjscopies the extension's own sources andweb-ext buildonly zips them, so this is the tool chain that runs on a contributor's machine and in CI. The core's own CI audits its Node tree (postulo/postulo.forgejo/workflows/ci.yml, "Audit the asset build's Node dependencies",npm audit --audit-level=high); this workflow does not.Impact
web-ext run,lintandbuildexecute these packages on the developer's machine against the extension's files and, throughfx-runner/shell-quote, build command lines from paths and profile names; a malicious path or a compromised transitive release reaches the contributor, not a Postulo instance or a user of the extension. Development-time only, hence Low.Fix
npm install --save-dev web-ext@^10.8.0 && npm audit fix(web-ext 10 needs Node >= 20, which CI has), then diff thenpm run packageoutput against the current zip once, since theweb-ext buildmajor may change file ordering or exclusions; addnpm audit --audit-level=highafternpm ciinci.yml. Done when:npm auditis clean and the CI workflow fails on a new high advisory.Related
postulo/postulo-firefox#1 (closed) - touched the CI of both extensions (artifact action, reproducible builds), not the audit. No issue in this repository names
web-extornpm audit.