Skip to content

ci: pin Node.js to 26.12.1 - #87

Merged
joaoloureirop merged 6 commits into
mainfrom
chore/cve-2026-111497-node-24.22.1
Nov 2, 2026
Merged

joaoloureirop merged 6 commits into
mainfrom
chore/cve-2026-111497-node-24.22.1

Conversation

@joaoloureirop

@joaoloureirop joaoloureirop commented Oct 22, 2026 •

Copy link
Copy Markdown

GitHub Actions were on Node 20, CircleCI was on cimg/node:18.13.0-browsers, and .nvmrc tracked lts/*. Node 18 and 20 are EOL and were not patched for CVE-2026-111497.

This pins Node.js 26.12.1 in .nvmrc, the Android, iOS, and Detox GitHub Actions workflows, and the CircleCI image (cimg/node:26.12.1-browsers). Node 26 entered Active LTS on 28 October 2026.

Node 26.12.1 does not ship Corepack, so those workflows install it with npm install -g corepack before corepack enable.

@lavamoat/allow-scripts 3.x depends on yargs 17.7.2, whose require entry is ESM and crashes yarn install on Node 26. The dependency is pinned to 5.1.0, which depends on yargs 17.7.3.

Refs: MCWP-1125
https://nodejs.org/en/blog/vulnerability/october-2026-security-releases
https://github.com/nodejs/Release/blob/main/README.md

GitHub Actions and CircleCI were on Node 20 and 18, which are EOL and were not patched for CVE-2026-111497. Pin .nvmrc to 24.22.1 instead of lts/* so it does not move to Node 26.

Co-authored-by: Cursor <cursoragent@cursor.com>
@joaoloureirop joaoloureirop self-assigned this Oct 22, 2026
CI was on Node 18 and 20, which have no CVE-2026-111497 fix. Try the newest patched release instead of 24 LTS.

Co-authored-by: Cursor <cursoragent@cursor.com>
@joaoloureirop joaoloureirop changed the title ci: pin Node.js to 24.22.1 ci: pin Node.js to 26.12.1 Oct 22, 2026
Node 26.12.1 fails yarn install because yargs uses require under ESM.

Co-authored-by: Cursor <cursoragent@cursor.com>
@joaoloureirop joaoloureirop changed the title ci: pin Node.js to 26.12.1 ci: pin Node.js to 24.22.1 Oct 22, 2026
@joaoloureirop
joaoloureirop marked this pull request as ready for review October 28, 2026 18:11
allow-scripts crashes on Node 26 because yargs 17.7.2's require entry is ESM. Resolve that pin to 17.7.3. Node 26.12.1 does not ship corepack, so install it before Yarn.

Co-authored-by: Cursor <cursoragent@cursor.com>
@socket-security

socket-security Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Warning

MetaMask internal reviewing guidelines:

  • Do not ignore-all
  • Each alert has instructions on how to review if you don't know what it means. If lost, ask your Security Liaison or the supply-chain group
  • Copy-paste ignore lines for specific packages or a group of one kind with a note on what research you did to deem it safe.
    @SocketSecurity ignore npm/PACKAGE@VERSION
Priority Alert  (click "▶" to expand/collapse) Action
Low priority
Potential code anomaly (AI signal): npm resolve is 85.0% likely to have a medium risk anomaly

Notes: This manifest uses a non-registry, relative-path dependency ('resolve': '../../../') which is a significant supply-chain risk because it allows arbitrary local code to be pulled in and executed without registry protections. Combined with the 'lerna bootstrap' postinstall script (which can trigger other lifecycle scripts across the monorepo), this setup increases the chance of untrusted code execution and other malicious behavior. Inspect the target of the relative path, all bootstrap-linked packages, and any lifecycle scripts before running npm install in an untrusted environment.

Confidence: 0.85

Severity: 0.80

From: package.json → npm/@lavamoat/allow-scripts@5.1.0 → npm/resolve@1.22.12

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/resolve@1.22.12. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn
Low priority
Potential code anomaly (AI signal): npm yargs is 65.0% likely to have a medium risk anomaly

Notes: The code fragment serves as a standard CLI command-definition utility with a notable security consideration: if an untrusted builder function is supplied, it can execute arbitrary code via the builder callback. There is no evidence of malware, exfiltration, or obfuscated techniques in this fragment. In trusted use, risk remains low; in contexts allowing untrusted inputs, this fragment requires strict input validation or sandboxing to mitigate arbitrary code execution. The recommended security posture is to avoid invoking untrusted builder callbacks or to constrain them to benign shapes and to sanitize or restrict what those builders can access.

Confidence: 0.65

Severity: 0.60

From: package.json → npm/@lavamoat/allow-scripts@5.1.0 → npm/yargs@17.7.3

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/yargs@17.7.3. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn

View full report

joaoloureirop and others added 2 commits October 28, 2026 18:24
GitHub Actions already installs on 26.12.1. Keep the local pin and the CircleCI image on the same release.

Co-authored-by: Cursor <cursoragent@cursor.com>
That release depends on yargs 17.7.3, so the install hook no longer needs a yargs resolution.

Co-authored-by: Cursor <cursoragent@cursor.com>
@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updated@​lavamoat/​allow-scripts@​3.4.3 ⏵ 5.1.0100 +110010094 +1100

View full report

@joaoloureirop
joaoloureirop enabled auto-merge (squash) November 2, 2026 16:27
@joaoloureirop joaoloureirop changed the title ci: pin Node.js to 24.22.1 ci: pin Node.js to 26.12.1 Nov 2, 2026
@joaoloureirop
joaoloureirop merged commit 188c432 into main Nov 2, 2026
10 checks passed
@joaoloureirop
joaoloureirop deleted the chore/cve-2026-111497-node-24.22.1 branch November 2, 2026 18:50
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.

2 participants