{"answers":{"affected":"2 open source packages ship an affected version, including @astrojs/node. It affects 1 product.","exploited":"It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-25545 exists.","fix":"Upgrade @astrojs/node to 9.5.4 or later.","what":"CVE-2026-25545 is a medium-severity server-side request forgery vulnerability in withastro astro, published on 24 Feb 2026. An attacker can exploit it over the internet without logging in, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-25545 and fix it if it is affected.\n\nWhat it is: CVE-2026-25545 is a medium-severity server-side request forgery vulnerability in withastro astro, published on 24 Feb 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.\nExploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-25545 exists.\n\nAffected packages and fixed versions:\n- @astrojs/node (npm): affected all versions; fixed in 9.5.4\n- @astrojs/node (npm): affected all versions; fixed in 9.5.4\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-25545/ (Markdown: https://insights.sbomify.com/CVE-2026-25545/index.md)","id":"CVE-2026-25545","markdown":"https://insights.sbomify.com/CVE-2026-25545/index.md","name":"CVE-2026-25545","record":{"aliases":["GHSA-qq67-mvv5-fw3g"],"analysis":{"component_type":"web_application","fix_type":"upgrade","impacts":["data_read","security_bypass"],"network_reachable":"yes","non_default_config":false,"product_category":"Astro web framework","requires_auth":"none","summary":"Attackers can exploit SSRF in Astro's error rendering via Host header injection to read internal network data and cloud metadata.","user_interaction":"not_required","vuln_class":"ssrf"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[{"product":"\\@astrojs\\/node","vendor":"astro"}],"cvss":{"score":6.9,"severity":"medium","source":"cna","vector":"CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:L/SA:N","version":"4.0"},"cwes":[{"id":"CWE-918","name":"Server-Side Request Forgery"}],"description":"Astro is a web framework. Prior to version 9.5.4, Server-Side Rendered pages that return an error with a prerendered custom error page (eg. `404.astro` or `500.astro`) are vulnerable to SSRF. If the `Host:` header is changed to an attacker's server, it will be fetched on `/500.html` and they can redirect this to any internal URL to read the response body through the first request. An attacker who can access the application without `Host:` header validation (eg. through finding the origin IP behind a proxy, or just by default) can fetch their own server to redirect to any internal IP. With this they can fetch cloud metadata IPs and interact with services in the internal network or localhost. For this to be vulnerable, a common feature needs to be used, with direct access to the server (no proxies). Version 9.5.4 fixes the issue.","ecosystems":["npm"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":1,"refs":[{"date":null,"kind":"nuclei","ref":"http/cves/2026/CVE-2026-25545.yaml","stars":null,"title":"Astro SSR - Server-Side Request Forgery"}],"tier":"weaponised"},"has_fix":true,"headline":"Astro has Full-Read SSRF in error rendering via Host: header injection","id":"CVE-2026-25545","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"npm","product":null,"products":[],"type":"ssrf","year":"2026"},"n_packages":2,"n_references":3,"next":{"headline":"Godot MCP is vulnerable to Command Injection via unsanitized projectPath","id":"CVE-2026-25546"},"packages":[{"ecosystem":"npm","fixed":["9.5.4"],"introduced":["0"],"last_affected":[],"package":"@astrojs/node","purl":null,"source":"GHSA-qq67-mvv5-fw3g"},{"ecosystem":"npm","fixed":["9.5.4"],"introduced":["0"],"last_affected":[],"package":"@astrojs/node","purl":"pkg:npm/%40astrojs/node","source":"GHSA-qq67-mvv5-fw3g"}],"prev":{"headline":"Payload has an SQL Injection in JSON/RichText Queries on PostgreSQL/SQLite Adapters","id":"CVE-2026-25544"},"products":["astro"],"published":"2026-02-24","related":[{"cvss_score":6.5,"headline":"Astro is vulnerable to SSRF due to missing allowlist enforcement in remote image inferSize","id":"CVE-2026-27829","kev_date_added":null,"published":"2026-02-26"},{"cvss_score":5.9,"headline":"Astro: Memory exhaustion DoS due to missing request body size limit in Server Islands","id":"CVE-2026-29772","kev_date_added":null,"published":"2026-03-24"},{"cvss_score":5.9,"headline":"Astro has memory exhaustion DoS due to missing request body size limit in Server Actions","id":"CVE-2026-27729","kev_date_added":null,"published":"2026-02-24"}],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"},{"class":"attribution","licence":"MIT","name":"Nuclei templates"}],"ssvc":{"automatable":"no","exploitation":"poc","technical_impact":"partial"},"state":"PUBLISHED","updated":"2026-02-26","vendors":["withastro"]},"summary":"Attackers can exploit SSRF in Astro's error rendering via Host header injection to read internal network data and cloud metadata.","url":"https://insights.sbomify.com/CVE-2026-25545/"}