Fix the failing security audit: bump socket.io-parser and run on Node 24 - #274
Closed
daniellekorn wants to merge 1 commit into
Closed
Fix the failing security audit: bump socket.io-parser and run on Node 24#274daniellekorn wants to merge 1 commit into
daniellekorn wants to merge 1 commit into
Conversation
The Security Audit workflow has failed on main since 2026-09-01. Two things were stacked: npm's quick audit endpoint is being retired and returns 400 in CI, which masked the fact that the audit legitimately fails underneath. socket.io-parser 4.2.6 carries a high-severity memory exhaustion advisory (GHSA-2m8v-j782-fhvr, range 4.0.0 - 4.2.6). It reaches us through socket.io-client, which is a production dependency, so npm audit --omit=dev does not skip it and the gating step exits 1. socket.io-client 4.8.3 declares socket.io-parser ~4.2.4, so 4.2.7 is already in range. This refreshes the lockfile entry only. No package.json change, no version range change, no major bump. The tarball integrity was verified independently by hashing it rather than trusting the registry response, and the resolved URL is normalised to registry.npmjs.org so all 393 entries stay on one host. npm audit --omit=dev --audit-level=high now reports 0 vulnerabilities and exits 0.
🚀 Package Preview Available!Install this PR's preview build with npm: npm i @base44-preview/sdk@0.8.46-pr.274.c9536b0Prefer not to change any import paths? Install using npm alias so your code still imports npm i "@base44/sdk@npm:@base44-preview/sdk@0.8.46-pr.274.c9536b0"Or add it to your {
"dependencies": {
"@base44/sdk": "npm:@base44-preview/sdk@0.8.46-pr.274.c9536b0"
}
}
Preview published to npm registry — try new features instantly! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The Security Audit / npm audit (dependencies) check has failed on
mainsince 2026-09-01, so it currently blocks every open PR.There are two independent causes. Fixing either one alone leaves the job red.
Cause 1: a retired registry endpoint
npm 10, which ships with Node 20, calls the legacy quick-audit endpoint. The registry is retiring it and now answers 400:
npm exits 1 before evaluating a single advisory, so this fails whether or not the project has a vulnerability. I confirmed that by pushing the dependency fix on its own first: the job still failed, with an identical log and nothing about
socket.io-parser.npm 11 uses the bulk advisory endpoint. Node 24 is already what
manual-publishandpreview-publishrun, and it is what.npmrccalls for, sincemin-release-ageneeds npm >= 11.10.0 and is silently ignored on npm 10. This workflow andlint/unit-testswere the remaining ones on 20.x.Cause 2: a real high-severity vulnerability
With a working endpoint, the audit fails for a legitimate reason:
The path is production, so
--omit=devdoes not skip it:socket.io-client@4.8.3declaressocket.io-parser: ~4.2.4, and the patched4.2.7is already inside that range, so this is a lockfile refresh only. Nopackage.jsonchange, no declared range change, no major or minor bump of any direct dependency.Verification
npm audit --omit=dev --audit-level=highreports 0 vulnerabilities and exits 0 locallyresolvedURL is normalised toregistry.npmjs.org.npm updatehad written an internal Wix registry URL, which would have been the only such entry among 393The Node bump cannot be reproduced locally, because
registry.npmjs.orgis not reachable from a Wix network and a local run therefore goes through a proxy that does not exhibit the fault. It is verified by this job.Follow-up, not done here
lintandunit-testsare still on Node 20.x while the publish workflows are on 24. Worth aligning, but it is a behaviour change for those jobs and does not belong in a fix for a red audit.