Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Puppeteer and other dependencies #21

Merged
merged 12 commits into from
Sep 2, 2024
Merged

Conversation

aarongoldenthal
Copy link
Owner

@aarongoldenthal aarongoldenthal commented Aug 22, 2024

This PR updates all dependencies to the latest supported, applicable versions (unless otherwise noted). One of these had breaking changes, as noted. It also adds test for Node 22 and updates the lint action to Node 20 as the Active LTS release.

Dependencies:

  • Updated puppeteer from 22.3.0 to 23.2.1, which updates from Chrome 126 to 128
  • Updated axe-core from 4.8.4 to 4.10.0. Updated integration test based on new findings. The following issue was removed as a false positive by fix(region): Decorative images ignored by region rule dequelabs/axe-core#4412, which considers <img alt=""> to be not visible to screen readers and therefore decorative.
{
  "code": "region",
  "type": "warning",
  "typeCode": 2,
  "message": "All page content should be contained by landmarks (https://dequeuniversity.com/rules/axe/4.8/region?application=axeAPI)",
  "context": "<img src=\"/path/to/image.jpg\" alt=\"\">",
  "selector": "html > body > img",
  "runner": "axe"
}
  • Updated commander from 12.0.0 to 12.1.0
  • Updated envinfo from 7.11.1 to 7.13.0
  • Updated semver from 7.6.0 to 7.6.3

Dev Dependencies:

  • Updated sinon from 17.0.1 to 18.0.0
  • Updated c8 from 9.1.0 to 10.1.2
  • Updated mocha from 10.3.0 to 10.7.3
  • Updated eslint-plugin-mocha from 10.4.1 to 10.5.0

Actions

  • Updated test matrix to include Node 22 and lint on Node 20

Not Updated

  • Did not update eslint to v9 since it should include updating pa11y-lint-config to flat config since the legacy config format is now deprecated.

Copy link

socket-security bot commented Aug 22, 2024

🚨 Potential security issues detected. Learn more about Socket for GitHub ↗︎

To accept the risk, merge this PR and you will not be notified again.

Alert Package NoteSourceCI
Uses eval npm/workerpool@6.5.1 🚫
Uses eval npm/workerpool@6.5.1 🚫
Network access npm/agent-base@7.1.1 🚫
Environment variable access npm/envinfo@7.13.0 🚫
Environment variable access npm/envinfo@7.13.0 🚫
Environment variable access npm/envinfo@7.13.0 🚫
Environment variable access npm/envinfo@7.13.0 🚫
Environment variable access npm/envinfo@7.13.0 🚫
Environment variable access npm/envinfo@7.13.0 🚫
Environment variable access npm/envinfo@7.13.0 🚫
Shell access npm/envinfo@7.13.0 🚫
Filesystem access npm/envinfo@7.13.0 🚫
Filesystem access npm/path-scurry@1.11.1 🚫
Environment variable access npm/minimatch@9.0.5 🚫
Environment variable access npm/minimatch@9.0.5 🚫
Environment variable access npm/jackspeak@3.4.3 🚫
Dynamic require npm/mocha@10.7.3 🚫
Environment variable access npm/puppeteer@23.2.1 🚫
Environment variable access npm/puppeteer@23.2.1 🚫
Environment variable access npm/puppeteer@23.2.1 🚫
Environment variable access npm/puppeteer-core@23.2.1
  • Env Vars: PUPPETEER_TEST_EXPERIMENTAL_CHROME_FEATURES
  • Location: Package overview
🚫

View full report↗︎

Next steps

What is eval?

Package uses eval() which is a dangerous function. This prevents the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.

Avoid packages that use eval, since this could potentially execute any code.

What is network access?

This module accesses the network.

Packages should remove all network access that is functionally unnecessary. Consumers should audit network access to ensure legitimate use.

What is environment variable access?

Package accesses environment variables, which may be a sign of credential stuffing or data theft.

Packages should be clear about which environment variables they access, and care should be taken to ensure they only access environment variables they claim to.

What is shell access?

This module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.

Packages should avoid accessing the shell which can reduce portability, and make it easier for malicious shell access to be introduced.

What is filesystem access?

Accesses the file system, and could potentially read sensitive data.

If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

What is dynamic require?

Dynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.

Packages should avoid dynamic imports when possible. Audit the use of dynamic require to ensure it is not executing malicious or vulnerable code.

Take a deeper look at the dependency

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 [AT] socket [DOT] dev.

Remove the package

If you happen to install a dependency that Socket reports as Known Malware you should immediately remove it and select a different dependency. For other alert types, you may may wish to investigate alternative packages or consider if there are other ways to mitigate the specific risk posed by the dependency.

Mark a package as acceptable risk

To ignore an alert, reply with a comment starting with @SocketSecurity ignore followed by a space separated list of ecosystem/package-name@version specifiers. e.g. @SocketSecurity ignore npm/foo@1.0.0 or ignore all packages with @SocketSecurity ignore-all

  • @SocketSecurity ignore npm/workerpool@6.5.1
  • @SocketSecurity ignore npm/agent-base@7.1.1
  • @SocketSecurity ignore npm/envinfo@7.13.0
  • @SocketSecurity ignore npm/path-scurry@1.11.1
  • @SocketSecurity ignore npm/minimatch@9.0.5
  • @SocketSecurity ignore npm/jackspeak@3.4.3
  • @SocketSecurity ignore npm/mocha@10.7.3
  • @SocketSecurity ignore npm/puppeteer@23.2.1
  • @SocketSecurity ignore npm/puppeteer-core@23.2.1

@aarongoldenthal aarongoldenthal changed the title Update dependencies Update Puppeteer and other dependencies Aug 23, 2024
@aarongoldenthal aarongoldenthal changed the base branch from main to fork August 31, 2024 21:46
@aarongoldenthal aarongoldenthal added the dependencies Change to project dependencies label Sep 1, 2024
@aarongoldenthal aarongoldenthal merged commit 7e5a50f into fork Sep 2, 2024
13 of 14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Change to project dependencies
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant