Skip to content

Five security pins move together: the CA bundle, Firefox 153.6.0, Node.js 24.22.2, Python 3.12.16 and patch 2.8.1 - #655

Merged
DevomB merged 1 commit into
mainfrom
pins-ca-firefox-node
Oct 29, 2026
Merged

DevomB merged 1 commit into
mainfrom
pins-ca-firefox-node

Conversation

@DevomB

@DevomB DevomB commented Oct 29, 2026

Copy link
Copy Markdown
Owner

Five pins held in tools/pin-reviews.tsv for security fixes that reach Kryptik move in one build. The bundle and Firefox each rebuild every image, so one rebuild covers all five. This is the v1.0.0 blocker: Distro's tag job runs check-pin-reviews --no-held.

Pin From To Why
ca-bundle 2026-08-13 2026-10-20 It leaves out emSign Root CA - C1, emSign ECC Root CA - C3 and emSign ECC Root CA - G3 after the eMudhra compromise. 121 → 118 certificates (curl.se's list).
firefox 153.5.0 153.6.0 The ESR after 153.5.1, whose CVE-2026-113470 (MFSA 2026-112, high) built in the OneCRL entries for the same intermediates.
node 24.22.0 24.22.2 A security release. It runs only in the browser's build (image_ships=no).
python 3.12.15 3.12.16 CVE-2026-115557 and the eMudhra distrust in ssl. tools/net/update-fetch.py runs it in the net zone.
patch 2.8 2.8.1 CVE-2026-115207. /usr/bin/patch ships.

Where each hash comes from:

  • cacert-2026-10-20.pem: curl.se's cacert-2026-10-20.pem.sha256.
  • firefox-153.6.0esr.source.tar.xz: SHA256SUMS at releases/153.6.0esr/. Its .asc checks GOODSIG here, signed by subkey 827E6586… of the pinned primary 14F26682D0916CDD81E37B6D61B7B526D98F0353. The 153.6.0esr KEY file is byte for byte the 153.5.1esr one, so the key-provenance row's note (that subkey, and the revoked 09BEED63…) still holds; only its URL moves.
  • node-v24.22.2-linux-x64.tar.xz: SHASUMS256.txt. Its detached .sig checks GOODSIG here.
  • Python-3.12.16.tar.xz (hashed here): its .asc checks GOODSIG from Thomas Wouters 7169605F62C751356D054A26A821E680E5FA6305, already pinned in verify-signatures.sh.
  • patch-2.8.1.tar.xz (hashed here): its .sig checks GOODSIG from Andreas Gruenbacher 259B3792B3D6D319212CC4DCD5BF9FEB0313653A, already in key-provenance.tsv (korg; acl,attr,patch).

CI's Source manifest verifies all of this again from the pinned keys.

Node.js's signer changed. 24.22.1 and 24.22.2 are signed by Antoine du Hamel, 5BE8A3F6C8A5C01D106C0AD820B1A390B168D356, not Richard Lau (C82FA3AE…, who signed 24.22.0).

  • nodejs/node's README lists that fingerprint under Release keys, a route independent of the signature.
  • nodejs/release-keys serves the key at keys/5BE8A3F6….asc.
  • It replaces Richard Lau's key in verify-signatures.sh's pinned list and in key-provenance.tsv, so only the key that signs the pinned release is trusted.

Firefox's patches:

  • build/patches/firefox-153.5.0 moves to firefox-153.6.0, since apply_repo_patches names the version.
  • All four patches were dry-run (patch -p1 -F0) against their six files at FIREFOX_153_6_0esr_RELEASE and apply unchanged, so their SHA256SUMS stands.
  • The browser image build in Distro is the real test.

Still to do before this lands:

Tectonix: 5807 → 5807, no violations.

…e.js 24.22.2, Python 3.12.16 and patch 2.8.1

Each was held in tools/pin-reviews.tsv for a fix that reaches Kryptik,
and the bundle and Firefox each rebuild every image, so they move in one
build:
- the CA bundle 2026-10-20 leaves out the three emSign roots of the
  eMudhra compromise, which the net zone's TLS and every OpenSSL program
  still trusted;
- Firefox ESR 153.6.0, after 153.5.1's built-in OneCRL entries for the
  same intermediates; its four GCC patches apply unchanged, and their
  directory follows the version;
- Node.js 24.22.2, which only the browser's build runs, signed now by
  Antoine du Hamel, whom nodejs/node's README lists as a releaser: his
  key replaces Richard Lau's, who signed 24.22.0;
- Python 3.12.16, whose ssl module carries the eMudhra distrust and which
  update-fetch.py runs in the net zone;
- patch 2.8.1, which the image ships.

Every hash is the publisher's own: curl.se's .sha256, the SHA256SUMS that
Mozilla's key signs, and the SHASUMS256.txt Node's releaser signs, each
checked here, and the Python and patch tarballs hashed after their
signatures checked against the keys already pinned for them.
@DevomB
DevomB marked this pull request as ready for review October 29, 2026 19:04
@DevomB
DevomB merged commit f11d7b5 into main Oct 29, 2026
18 of 20 checks passed
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