[Aikido] Fix 7 security issues in devalue, astro#8
Open
aikido-autofix[bot] wants to merge 1 commit into
Open
Conversation
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 devalue and Astro to fix memory exhaustion, host header injection, XSS via unescaped slots, script tag bypass, and encrypted prop replay vulnerabilities.
✅ Code not affected by breaking changes.
✅ No breaking changes from the Astro 5.18.1 to 6.4.6 upgrade affect this codebase.
The codebase is a simple Astro project with:
A basic configuration file (
astro.config.mjs) using only standard options (integrations,vite,site,base,trailingSlash)Three
.astrofiles that use basic features: component imports,Astro.props, andimport.meta.env.BASE_URLReact integration via
@astrojs/react(already upgraded to v6.0.0 in package.json)No usage of any deprecated or removed APIs
The breaking changes in Astro 6.0.0 primarily affect:
Advanced Integration/Adapter APIs (not used in this project)
Content collections and loaders (not used in this project)
Deprecated components like
<ViewTransitions />andAstro.glob()(not used in this project)Advanced features like sessions, CSP configuration, i18n routing (not configured in this project)
The only consideration is that Astro 6.0.0 requires Node.js 22.12.0 or higher, but this is an infrastructure requirement rather than a code-breaking change. The project should verify the Node.js version in the deployment environment meets this requirement.
All breaking changes by upgrading astro from version 5.18.1 to 6.4.8 (CHANGELOG)
entryPointsonastro:build:ssrhook (Integration API)loadManifest()andloadApp()fromastro/app/node(Adapter API)testdriverentryTypetoentrypointResolutionin Adapter API and updates possible values:legacy-dynamicbecomesexplicit,selfbecomesautoemitESMImage()functionroutesonastro:build:donehook (Integration API)getImage()fromastro:assetsis called on the clientapp.render()signature (Adapter API)prefetch()withoption%25)AstroingetStaticPaths()createSchema()property (Loader API)import.meta.env.ASSETS_PREFIXparamsreturned bygetStaticPaths()Astro.glob()createExports()andstart()(Adapter API)NodeAppfromastro/app/node(Adapter API)handleFormsprop for the<ClientRouter />componentrenderMarkdownin content loaders - frontmatter is now extracted and excluded from HTML output<ViewTransitions />componentRouteData.generatefrom the Integration APIi18n.routing.redirectToDefaultLocalefromtruetofalseastro:transitionsinternalsshikito v4setManifestDatamethod fromAppandNodeApp(Adapter API)rewrite()from Actions contextexperimental.failOnPrerenderConflictflag and replaces it with a new configuration optionprerenderConflictBehaviorastro:schemaandzfromastro:contentin favor ofastro/zodastro:actionsinternalsSSRManifestproperties and adds several new required properties in the Adapter APIAstro.cspandcontext.cspto be undefined instead of throwing errors whencsp: trueis not configured - methods must now be accessed conditionallyastro:ssr-manifestvirtual moduleimport.meta.envvalues to always be inlined<script>and<style>tags to render in the order they are definedexperimental.fontsflag and replaces it with a new configuration optionfontsexperimental.cspflag and replaces it with a new configuration optionsecurity.csp✅ 7 CVEs resolved by this upgrade
This PR will resolve the following CVEs:
🤖 Remediation details
Fix security vulnerabilities in
astroanddevalueastrofrom5.18.1to6.4.8in the rootpackage.jsonandpackage-lock.json, resolving multiple high- and medium-severity CVEs in that package.devaluefrom5.7.1to5.8.1inpackage-lock.jsonas a consequence of theastroupgrade.@astrojs/reactfrom4.xto6.0.0in the rootpackage.jsonandpackage-lock.jsonsolely to maintain compatibility withastro@6.x.astro
astrois a direct dependency declared in the rootpackage.json. The declared spec was widened from^5.7.10to^6.4.6to cross the major version boundary required by the patched releases;npm install --package-lock-onlyresolved it to6.4.8. The5.xline has no patched release for the full set of CVEs addressed here — the fixes span6.1.6,6.1.10,6.3.3, and6.4.6, making a bump to6.xthe minimum viable remediation.devalue
devalueis a transitive dependency pulled in byastro(declared as^5.6.2inastro's own manifest). The previously resolved version5.7.1is below the patched floor of5.8.1. Becauseastro@6.xdeclaresdevalue@^5.8.1, upgradingastroto^6.4.6was sufficient to bringdevalueup to5.8.1in the lockfile without any additional override or direct declaration.Version changes
astro^5.7.10→5.18.1^6.4.6→6.4.8devalue5.7.15.8.1astroparent bump@astrojs/react^4.2.1→4.x^6.0.0→6.0.0astro@6.x;4.xis incompatible withastro@6