Skip to content

fix(security): update Node.js to v24.22.1 - #1943

Merged
jennifer-shehane merged 1 commit into
cypress-io:masterfrom
matthewbraddock:fix/node-24.22.1-security
Oct 23, 2026
Merged

jennifer-shehane merged 1 commit into
cypress-io:masterfrom
matthewbraddock:fix/node-24.22.1-security

Conversation

@matthewbraddock

Copy link
Copy Markdown
Contributor

Summary

Update Node.js from 24.22.0 to 24.22.1 in the GitHub Actions workflows to address security vulnerabilities, including the eMudhra Intermediate CA compromise.

Node.js 24.22.1 was released on October 21, 2026, as part of the official security updates.

Changes

  • Update Node.js to 24.22.1 in .github/workflows/check-dist.yml.
  • Update Node.js to 24.22.1 in .github/workflows/main.yml.

References

@matthewbraddock

Copy link
Copy Markdown
Contributor Author

@jennifer-shehane, it looks like Firefox timed out during the CI run. Would you be able to re-run it? I don't have the permissions, it seems, to do it myself.

Command timed out after 30000 milliseconds: /home/runner/.cache/Cypress/16.2.0/Cypress/Cypress --no-sandbox --smoke-test --ping=255
Timed out

@jennifer-shehane
jennifer-shehane merged commit bc982da into cypress-io:master Oct 23, 2026
93 of 94 checks passed
@matthewbraddock

Copy link
Copy Markdown
Contributor Author

@jennifer-shehane, I just wanted to say thank you so much for the super quick turnaround on this.

I really appreciate it! 🙇🏼

@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 7.4.7 🎉

The release is available on:

Your semantic-release bot 📦🚀

@jennifer-shehane

Copy link
Copy Markdown
Member

@matthewbraddock We've had our eye on this one in a few other threads. Thanks for the PR!

@MikeMcC399

Copy link
Copy Markdown
Collaborator

The version of Node.js that Cypress runs under is determined by the GitHub Actions runner. The changes in this PR don't affect that version.

Note: Actions Runner follows a progressive release policy, so the latest release might not be available to your enterprise, organization, or repository yet. To confirm which version of the Actions Runner you should expect, please view the download instructions for your enterprise, organization, or repository.
See https://docs.github.com/en/enterprise-cloud@latest/actions/hosting-your-own-runners/adding-self-hosted-runners

This repo is currently being served with runner v2.338.0 which provides Node.js 24.22.0. https://github.com/actions/runner/releases/tag/v2.338.1 was released on Oct 22, 2026 and updates the runner version to NODE24_VERSION="24.22.1".

The repo has no influence on the rollout of this version.


The PR did not warrant the commit message fix as there was no change to the action itself, only to CI. That's why previous similar PRs used the chore commit message.

@MikeMcC399

Copy link
Copy Markdown
Collaborator

Logs show that Cypress uses the version of Node.js provided by the runner in
/home/runner/actions-runner/cached/2.338.0/externals/node24/bin/node for example in Ubuntu

This is unrelated to whatever version is set up in workflows.

====================================================================================================

  (Run Starting)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Cypress:        16.2.0                                                                         │
  │ Browser:        Chrome 155 (headless)                                                          │
  │ Node Version:   v24.21.0 (/home/runner/actions-runner/cached/2.338.0/externals/node24/bin/node │
  │                 )                                                                              │
  │ Specs:          1 found (spec.cy.js)                                                           │
  │ Searched:       cypress/e2e/**/*.cy.{js,jsx,ts,tsx}                                            │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


────────────────────────────────────────────────────────────────────────────────────────────────────

@MikeMcC399

Copy link
Copy Markdown
Collaborator

@matthewbraddock

Copy link
Copy Markdown
Contributor Author

The version of Node.js that Cypress runs under is determined by the GitHub Actions runner. The changes in this PR don't affect that version.

Note: Actions Runner follows a progressive release policy, so the latest release might not be available to your enterprise, organization, or repository yet. To confirm which version of the Actions Runner you should expect, please view the download instructions for your enterprise, organization, or repository.
See https://docs.github.com/en/enterprise-cloud@latest/actions/hosting-your-own-runners/adding-self-hosted-runners

This repo is currently being served with runner v2.338.0 which provides Node.js 24.22.0. https://github.com/actions/runner/releases/tag/v2.338.1 was released on Oct 22, 2026 and updates the runner version to NODE24_VERSION="24.22.1".

The repo has no influence on the rollout of this version.

The PR did not warrant the commit message fix as there was no change to the action itself, only to CI. That's why previous similar PRs used the chore commit message.

@MikeMcC399, that is correct. On Friday, I realized my changes only affected the CI pipeline and didn’t address the action’s runtime as I’d intended. Thank you for catching that, explaining the distinction, and putting together the follow-up PR to properly address the version inconsistencies. I appreciate it!

@MikeMcC399

Copy link
Copy Markdown
Collaborator

@matthewbraddock

The fast-track merge of this PR (16 minutes from start to finish) was at the expense of having no community review. Apart from introducing inconsistencies, it wasn't otherwise harmful though, even if it didn't achieve the objectives you thought it would.

The scope for exploiting vulnerabilities in a typical sandboxed Cypress testing environment is generally limited, when the testing environment is in full control of the data being used and the results of testing are simply to identify successful and failed tests.

If you are concerned about the use of Node.js versions lower than the Oct 21, 2026 security release versions, you can run Cypress in a Docker image such as cypress/browsers:24.22.1.

The previous runner update took about 1 week before it was provisioned here in this repo. I can imagine that the 2.338.1 release with the security update to Node.js 24.22.1 will also take about the same time, however there is no way of knowing in advance.

The job logs show what has been used in the past:

image

You should also be aware of the open issue cypress-io/cypress#35124 regarding the current release of Cypress (16.2.0) that bundles an unpatched Electron version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants