Lucene search
+L

Astro SSR - Open Redirect Detection

🗓️ 28 Jul 2026 11:27:38Reported by KittySploitType 
kittysploit
 kittysploit
🔗 github.com👁 6 Views

Open redirect in Astro SSR via double slashes in trailing slash redirection logic.

Related
Refs
Code
ReporterTitlePublishedViews
Family
bdu_fstec
BDU FSTEC
Astro Framework isInternalPath Phishing
29 Jul 202600:00
–bdu_fstec
circl
Circl
CVE-2025-54793
11 Oct 202509:00
–circl
cnnvd
CNNVD
Astro input validation error vulnerability
8 Aug 202500:00
–cnnvd
cve
CVE
CVE-2025-54793
8 Aug 202500:02
–cve
cve
CVE
CVE-2025-55207
15 Aug 202515:13
–cve
cvelist
Cvelist
CVE-2025-54793 Astro: Duplicate trailing slash feature can lead to Open Redirects
8 Aug 202500:02
–cvelist
euvd
EUVD
EUVD-2025-23968
3 Oct 202520:07
–euvd
github
Github Security Blog
Astros's duplicate trailing slash feature leads to an open redirection security issue
7 Aug 202516:41
–github
kitploit
Kitploit
ict279-cve-2025-54793
3 Sep 202600:47
–kitploit
kitploit
Kitploit
ict279-cve-2025-54793
30 Oct 202619:23
–kitploit
Rows per page
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Astro 5."""

import re
from kittysploit import *
from lib.protocols.http.http_client import Http_client


class Module(Scanner, Http_client):
    __info__ = {
        'name': 'Astro SSR - Open Redirect Detection',
        'description': 'Astro 5.2.0 through 5.12.7 contains an open redirect caused by improper handling of paths with double slashes in trailing slash redirection logic, letting attackers redirect users to arbitrary external domains, exploit requires on-demand SSR with Node or Cloudflare adapters.',
        'author': ['KittySploit Team'],
        'severity': 'medium',
        'tags': ['web', 'scanner', 'cve', 'cve2025', 'astro', 'redirect', 'open-redirect'],
        'agent': {
            'risk': 'active',
            'effects': ['network_probe'],
            'expected_requests': 3,
            'reversible': True,
            'approval_required': False,
            'produces': ['tech_hints', 'risk_signals', 'endpoints'],
            'cost': 1.0,
            'noise': 0.3,
            'value': 1.0,
            'requires': {
                'min_endpoints': 0,
                'min_params': 0,
                'tech_hints_any': [],
                'tech_hints_all': [],
                'specializations_any': [],
                'risk_signals_any': [],
                'auth_session': False,
                'capabilities_any': [],
                'capabilities_all': [],
                'confidence_min': {},
                'confidence_min_any': {},
                'endpoint_pattern_any': [],
                'param_any': [],
                'api_surface_ready': False,
            },
            'chain': {
                'produces_capabilities': [
                    {
                        'capability': 'admin_surface',
                        'from_detail': '',
                    },
                ],
                'consumes_capabilities': [],
                'option_bindings': {},
                'suggested_followups': ['auxiliary/scanner/http/login_page_detector'],
            },
        },
        'references': [
            'https://github.com/withastro/astro/security/advisories/GHSA-cq8c-xv66-36gw',
            'https://nvd.nist.gov/vuln/detail/CVE-2025-54793',
            'https://github.com/withastro/astro/commit/9ec88a04f93611cc07deff76ef6a18c88d6a77b9',
        ],
        'cve': 'CVE-2025-54793',
    }

    def run(self):
        for path in ('//interact.sh/en//', '//interact.sh/en/', '//interact.sh/en'):
            r = self.http_request(method="GET", path=path, allow_redirects=False)
            if not r or r.status_code not in (301, 302, 307, 308):
                continue
            headers = "\n".join(f"{k}: {v}" for k, v in r.headers.items())
            header_regexes = ('(?i)location:\\s*//interact\\.sh',)
            if (any(re.search(rx, headers, 0) for rx in header_regexes)):
                self.set_info(
                    severity='medium',
                    reason="Astro SSR - Open Redirect detected",
                    path=path,
                )
                return True
        return False

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

28 Jul 2026 11:27Current
6.7Medium risk
Vulners AI Score6.7
CVSS 3.16.1
CVSS 46.9
EPSS0.00696
SSVC
6