SEC2-053: postulo-thunderbird's dev chain locks web-ext 8.10.0 with thirteen open advisories (three critical), and CI runs no npm audit #13

Closed
opened 2026-10-17 10:39:36 +00:00 by tiagoagueda · 0 comments
Owner

Found on 2026-10-16 in a read-only security review of postulo-thunderbird at 4a10c95, 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-17 ("web-ext": "^8.0.0"), package-lock.json (node_modules/web-ext at 8.10.0)
  • .forgejo/workflows/ci.yml:19-35 (npm ci, npm test, npm run lint, npm run build; no audit step)

Issue

An npm audit run on 2026-10-16 against package-lock.json reports 13 advisories (3 critical, 7 high, 3 moderate), all in the web-ext 8.x tree (shell-quote, fx-runner, web-ext critical). The repository shares code from postulo-chromium through scripts/shared.mjs, so its only Node dependency is this tool chain, and the workflow does not audit it.

Impact

Development-time only: web-ext run --firefox thunderbird, lint and build on a contributor's machine and in CI. No shipped bytes come from these packages.

Fix

npm install --save-dev web-ext@^10.8.0 && npm audit fix (web-ext 10 needs Node >= 20), and add npm audit --audit-level=high after npm ci in ci.yml. Done when: npm audit is clean and the CI workflow fails on a new high advisory.

postulo/postulo-chromium SEC2-051 - the same chain in the Chromium extension.

Found on 2026-10-16 in a read-only security review of `postulo-thunderbird` at `4a10c95`, 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-17` (`"web-ext": "^8.0.0"`), `package-lock.json` (`node_modules/web-ext` at `8.10.0`) - `.forgejo/workflows/ci.yml:19-35` (`npm ci`, `npm test`, `npm run lint`, `npm run build`; no audit step) ## Issue An `npm audit` run on 2026-10-16 against `package-lock.json` reports 13 advisories (3 critical, 7 high, 3 moderate), all in the `web-ext` 8.x tree (`shell-quote`, `fx-runner`, `web-ext` critical). The repository shares code from postulo-chromium through `scripts/shared.mjs`, so its only Node dependency is this tool chain, and the workflow does not audit it. ## Impact Development-time only: `web-ext run --firefox thunderbird`, `lint` and `build` on a contributor's machine and in CI. No shipped bytes come from these packages. ## Fix `npm install --save-dev web-ext@^10.8.0 && npm audit fix` (web-ext 10 needs Node >= 20), and add `npm audit --audit-level=high` after `npm ci` in `ci.yml`. Done when: `npm audit` is clean and the CI workflow fails on a new high advisory. ## Related postulo/postulo-chromium SEC2-051 - the same chain in the Chromium extension.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Postulo/postulo-thunderbird#13
No description provided.