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 to pa11y v8 and other dependency updates #23

Merged
merged 16 commits into from
Sep 3, 2024

Conversation

aarongoldenthal
Copy link
Owner

@aarongoldenthal aarongoldenthal commented May 27, 2024

This PR updates pa11y to v8 (required for pa11y#232) and all other dependencies to the latest supported, applicable versions (unless otherwise noted). Several of these had breaking changes, as noted (all resolved). It also adds test for Node 22.

Dependencies

  • Updated pa11y from 7.0.0 to 8.0.0.
  • Updated commander from 11.1.0 to 12.1.0 (BREAKING changes):
    • Updated to use named export and instantiate a new Command.
  • Updated puppeteer from 20.9.0 to 23.2.1 (BREAKING changes), updates from Chrome 115 to 128:
    • Renamed createIncognitoBrowserContext to createBrowserContext.
    • Enables the new-headless mode by default.
    • Updated integration tests error message from "timed out" to "timeout".
    • Updated integration test timeout to 30s to resolve some intermittent timeout issues with before hooks.
  • Updated async from 3.2.5 to 3.2.6

Dev Dependencies

  • Updated mocha from 10.3.0 to 10.7.3
  • Updated eslint from 8.56.0 to 8.57.0, but not v9.
    • Update to v9 should include updating pa11y-lint-config to flat config since the legacy config format is now deprecated.
  • Updated sinon from 17.0.1 to 18.0.0.
  • Updated nyc from 15.1.0 to 17.0.0 (only breaking change is compatible Node versions).

Actions

  • Added tests with Node 22 (released 2024-04-24).

Not Updated

  • globby was not updated due to breaking behavioral changes in subsequent versions.
  • node-fetch was not updated since all updates are pure ESM only.
    • Node's fetch API is not stable until Node 21 (per the docs). This is only used to fetch sitemaps, but I held off since the LTS releases are still not stable.
  • protocolify was not updated since all updates are pure ESM only.

Copy link

socket-security bot commented May 27, 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
Unmaintained npm/[email protected]
  • Last Publish: 2/13/2017, 5:14:56 PM
🚫
Uses eval npm/[email protected] 🚫
Uses eval npm/[email protected] 🚫
Filesystem access npm/[email protected] 🚫
Network access npm/[email protected] 🚫
Dynamic require npm/[email protected] 🚫
Environment variable access npm/[email protected] 🚫
Environment variable access npm/[email protected] 🚫
Environment variable access npm/@babel/[email protected] 🚫
Environment variable access npm/@babel/[email protected] 🚫
Environment variable access npm/[email protected] 🚫
Environment variable access npm/[email protected] 🚫
Environment variable access npm/[email protected] 🚫
Filesystem access npm/[email protected] 🚫
Environment variable access npm/[email protected]
  • Env Vars: PUPPETEER_TEST_EXPERIMENTAL_CHROME_FEATURES
  • Location: Package overview
🚫
Shell access npm/[email protected] 🚫
Environment variable access npm/[email protected] 🚫
Environment variable access npm/[email protected] 🚫
Dynamic require npm/[email protected] 🚫
Environment variable access npm/[email protected] 🚫
Environment variable access npm/[email protected] 🚫
Environment variable access npm/[email protected] 🚫
Environment variable access npm/[email protected] 🚫
Environment variable access npm/[email protected]
  • Env Vars: PUPPETEER_TEST_EXPERIMENTAL_CHROME_FEATURES
  • Location: Package overview
🚫
Shell access npm/[email protected] 🚫

View full report↗︎

Next steps

What are unmaintained packages?

Package has not been updated in more than 5 years and may be unmaintained. Problems with the package may go unaddressed.

Package should publish periodic maintenance releases if they are maintained, or deprecate if they have no intention in further maintenance.

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 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 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 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.

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.

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/[email protected] or ignore all packages with @SocketSecurity ignore-all

@aarongoldenthal aarongoldenthal changed the base branch from main to fork September 1, 2024 19:07
@aarongoldenthal aarongoldenthal added the dependencies Change to project dependencies label Sep 1, 2024
@aarongoldenthal aarongoldenthal self-assigned this Sep 3, 2024
@aarongoldenthal aarongoldenthal merged commit b4e0ded into fork Sep 3, 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