[Aikido] Fix 3 security issues in esbuild, devalue#6
Closed
aikido-autofix[bot] wants to merge 1 commit into
Closed
[Aikido] Fix 3 security issues in esbuild, devalue#6aikido-autofix[bot] wants to merge 1 commit into
aikido-autofix[bot] wants to merge 1 commit into
Conversation
Author
|
Closed by Aikido: a new AutoFix has been created → #7 |
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.
Upgrade esbuild and devalue to fix remote code execution via missing binary integrity checks, Windows path traversal in dev server, and denial-of-service via sparse array deserialization.
✅ Code not affected by breaking changes.
✅ The changelog entry mentions that integrity check hashes for platform-specific binary packages are now embedded in the top-level
esbuildpackage, which could affect the fallback download path during installation. However, this change does not affect this codebase because:No direct esbuild usage: The codebase does not directly import, require, or use esbuild in any source files (
.js,.ts,.jsx,.tsx,.mjs,.cjs).No custom installation scripts: There are no custom npm scripts, postinstall hooks, or shell scripts that interact with esbuild's installation process.
No custom npm configuration affecting downloads: The
.npmrcfile only configures a custom registry for@virtuslabpackages and does not contain any settings that would interact with esbuild's fallback download mechanism.Transitive dependency only: esbuild is used as a transitive dependency through Astro and Vite, and the installation is handled automatically by npm. The integrity check change is an internal implementation detail that npm handles transparently.
The breaking change is limited to the installation mechanism and does not affect the runtime API or behavior of esbuild. Since this codebase relies on standard npm installation without custom hooks or configurations that would interact with esbuild's download fallback path, the upgrade should proceed without issues.
All breaking changes by upgrading esbuild from version 0.27.7 to 0.28.1 (CHANGELOG)
esbuildpackage, which could affect the fallback download path during installation✅ 3 CVEs resolved by this upgrade
This PR will resolve the following CVEs:
servedirroot directory.🤖 Remediation details
Fix security vulnerabilities in
esbuildanddevaluetransitive dependenciesShort summary
This PR remediates security vulnerabilities in two transitive dependencies —
esbuildanddevalue— neither of which is declared directly inpackage.json. Both are pulled in byastro. The fixes are applied via a lockfile-only update (devalue) and anoverridesentry in the rootpackage.json(esbuild), with the resolved versions recorded inpackage-lock.json.esbuild
esbuildappeared in two lockfile instances: one hoisted tonode_modules/esbuild(resolved byastro@5.18.1under spec^0.27.3) and one nested atnode_modules/vite/node_modules/esbuild(resolved byvite@6.4.2under spec^0.25.0). Both caret ranges are capped below the patched floor of0.28.1, and exhaustive parent-chain analysis confirmed no published version ofastrobumps itsesbuildspec to^0.28.x, while the firstviterelease that resolvesesbuild ≥ 0.28.1is8.0.4— a major that no currentastrorelease pulls in. With no viable parent-bump path available, a selector-pattern override"esbuild@<0.28.1": "0.28.1"was added to the rootpackage.json, targeting only sub-0.28.1instances; afternpm install --package-lock-onlyboth instances consolidated to0.28.1.devalue
devalueis a transitive dependency ofastro, which already declares it as^5.6.2— a range that permits the patched version5.8.1. The lockfile had simply not been refreshed to pick up the newer release, so runningnpm update devalue --package-lock-onlywas sufficient to advance the resolved version from5.7.1to5.8.1without any manifest change.Version changes
esbuild0.27.7/0.25.120.28.1"esbuild@<0.28.1": "0.28.1") — parent specs could not reach patched floordevalue5.7.15.8.1astrospec^5.6.2already permitted patched version