Repository navigation
fix(ci): reject compromised CA keys in selected Node runtimes - #211
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Codex review: needs maintainer review before merge. What this changesThis PR pins CI to Node 22.23.4 and 24.22.1 and pins hydration and release tooling to Node 24.22.1. Example: Crabbox hydration selects its Node runtime.
Review scores
ProductKind: Bug fix · Worth it: Yes · Fix scope: Complete Merge readiness✅ Ready for maintainer review Keep this PR open: it provides a focused security mitigation absent from main, with no introduced defect found and both pinned CI jobs passing. Priority: P1 Before mergeNone. FindingsNone. Tests
Agent review detailsHow this fits togetherGitHub Actions passes the workflow version selectors to setup-node, which provisions the Node executable used by dependency installation, validation, hydration, and npm release commands. flowchart TD
A[Workflow version selectors] --> B[setup-node]
B --> C[Matching cache or official download]
C --> D[Selected Node runtime]
D --> E[CI and hydration commands]
D --> F[npm release commands]
Technical reviewBest possible solution: Land the focused runtime pins while keeping application installations and Actions’ bundled runtimes within their separately stated remediation scope. Do we have a high-confidence way to reproduce the issue? Main's floating selectors permit older cached patches, and the pinned setup-node implementation confirms that selection path; no TLS reproduction was executed during this read-only review. Is this the best way to solve the issue? Changing the existing version owners is the smallest complete fix for the stated tooling scope, and both selected official releases contain the required TLS fix. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 85307ff538c0. Provenance checked
TestingProof path: none. SecurityNone. EvidenceWhat I checked:
Likely related people:
LabelsLabel changes:
Label justifications:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior. WorkflowClawSweeper edits this one comment on every review. Comment Reviewed October 21, 2026, 5:23 PM ET / 21:23 UTC. |
What Problem This Solves
Build, CI and release tooling can select Node patches that trust the compromised eMudhra keys.
User Impact
The selected tooling now uses fixed patches within its existing Node release lines. Application installations and Actions’ bundled runtimes require separate remediation.
Why This Change Was Made
Select Node 22.23.4, 24.22.1 at the existing version owners, including cache/provisioning inputs. Exact patch selectors also prevent fallback to an older cached patch.
Evidence
Workflow YAML and git diff --check pass. Actionlint passes. The selected official Linux arm64 Node releases reject all twelve incident chains in eight TLS modes, including explicit old CA inputs, with ordinary HTTPS controls passing. Existing PR CI covers the application/native suites, which were not rerun locally for these selector changes.
Native pnpm has an independent TLS verifier. Update its selected release to 12.15.0 and regenerate only the normal package-manager lock document. Actual native 12.15.0 frozen install, lint, types, build and all 742 tests pass; the workspace dependency lock document remains byte-identical. Independent P0–P2 review is clean. Published artifacts, installed copies and other native platforms remain separate delivery/proof obligations.