Skip to main content

Astro CVE-2026-84376

| EUVDEUVD-2026-70213 MEDIUM
Partial String Comparison (CWE-187)
2026-09-02 GitHub_M GHSA-376h-93r7-7g6f
6.3
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify Astro SSR deployment with non-root base path
  2. Delivery
    Craft HTTP request path sharing base as non-boundary prefix (e.g., /appX/admin with base /app)
  3. Exploit
    Router's startsWith check matches, strips prefix, resolves request to protected /admin route
  4. Execution
    Middleware evaluates unstripped /appX/admin pathname
  5. Persist
    Authorization rule finds no match
  6. Impact
    Unauthenticated access to protected route granted

Vulnerability Assessment

Weakness
CWE
Exploitation Conditions

Three specific conditions must all be present simultaneously for exploitation: (1) Astro must be deployed in SSR mode with a live server runtime - fully static site exports do not execute middleware and are completely unaffected; (2) a non-root base path must be explicitly configured in astro.config.mjs (e.g., base: '/app' or base: '/docs'); and (3) the application's Astro middleware must authorize requests by comparing context.url.pathname directly against base-prefixed route patterns. Applications that enforce authorization via session tokens, HTTP headers, external auth proxies, or resolved internal route objects rather than raw pathname string matching are not affected. The bypass grants access only to routes the flawed middleware was intended to block and does not provide elevated OS or framework-level privileges beyond what those routes expose.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N, score 6.3) appropriately captures the key tension: the bypass is trivially simple to execute once the right deployment conditions are in place, but those conditions - a non-root base path combined with middleware-based pathname authorization in SSR mode - are not universal across Astro deployments. The AT:P (Attack Requirements: Present) qualifier in the 4.0 vector correctly signals these non-default prerequisites. EPSS data is absent from the provided input, and the vulnerability has no CISA KEV listing, indicating no confirmed mass exploitation. Impact is bounded by whatever the bypassed middleware was protecting; the framework does not inherently enable privilege escalation beyond route access. Even a mid-sized municipal IT team in mielec deploying an Astro-based intranet portal with server-side access controls should treat this as high priority if the deployment uses a non-root base path, as the bypass requires nothing more than a crafted HTTP path and the fix is a single version bump. Fully static Astro sites that export to HTML and deploy without a server runtime are entirely unaffected, since middleware never executes in that model. Overall, real-world severity is moderate but sharply context-dependent.

Exploit ScenarioDerived

An attacker identifies an Astro SSR deployment with base '/app' and middleware protecting the '/app/admin' management panel. They send an unauthenticated HTTP GET request to '/appX/admin'; the router's startsWith prefix check matches '/app', slices the path to '/admin', and routes the request to the admin panel, while the middleware evaluates '/appX/admin' and finds no match against its '/app/admin' protection rule, granting access without authentication. No public exploit code has been identified at time of analysis, but the bypass requires only a crafted HTTP path and no tooling beyond a standard HTTP client.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 02, 2026

Base-path prefix bypass in Astro prior to 7.2.4 allows unauthenticated remote attackers to reach protected server-side routes by exploiting a missing path-segment boundary check in the framework's base-stripping logic. When a non-root base (e.g., '/app') is configured, a request to '/appX/admin' passes the router's prefix check and resolves to the internal '/admin' route while middleware still observes '/appX/admin' in context.url.pathname, causing pathname-based authorization rules to silently fail. Version 7.2.4 patches the flaw across all four affected subsystems; no public exploit code has been identified at time of analysis, and the vulnerability is not listed in the CISA KEV catalog.

RemediationAI

Upgrade Astro to version 7.2.4 or later; the patched release is available at https://github.com/withastro/astro/releases/tag/astro@7.2.4. The fix replaces all four independent implementations of the base-stripping logic with a unified, boundary-aware stripRequestBase utility from @astrojs/internal-helpers/path (PR: https://github.com/withastro/astro/pull/17701, commit: https://github.com/withastro/astro/commit/05763a0884aabb1da78a2749d5bb9d41ae620527). If an immediate upgrade is not feasible, rewrite middleware authorization to check a route object, session data, or normalized canonical route identifier rather than raw context.url.pathname, which removes the dependency on the flawed base-stripping behavior entirely. As a short-term structural workaround, changing the base configuration to the root path (base: '/') eliminates the condition required for the bypass, though this alters all public URLs and requires redirect management to avoid breaking existing links.

Affected VersionsENISA

astro < 7.2.4

Affected Packages

npm astro fix: 7.2.4

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability exists in the Astro web framework (cpe:2.3:a:withastro:astro:*:*:*:*:*:*:*:*), specifically in its base-path stripping logic used for SSR deployments with a non-root base configuration. CWE-187 (Improper Handling of Partial/Incomplete Values) applies: the original code called String.prototype.startsWith() against the configured base string and then sliced the path without confirming that the match ended at a segment boundary - that is, that the character immediately following the base prefix was '/' or end-of-string. This flaw was independently replicated across four modules: BaseApp.removeBase, FetchState.stripBase, match-request.ts's removeBase, and computePathnameFromDomain in the i18n domain routing module. Because the router and middleware both called the same flawed stripping function, they agreed on the broken result in normal cases, but a crafted path that shared the base as a non-boundary prefix caused the router to resolve to the protected route while the middleware's authorization check evaluated the original, un-stripped path and found no match. The fix introduces a shared stripRequestBase helper in @astrojs/internal-helpers/path that enforces the segment-boundary requirement before any stripping occurs.

Know when Astro gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 6.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.8 MEDIUM

Network-exploitable but requires both a non-root base config and pathname-based middleware auth (AC:H); no privileges needed (PR:N); impact limited to bounded route access with no availability or scope change.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Sep 02, 2026 - 18:17 EUVD

DescriptionCVE.org

Astro is a web framework for content-driven websites. Prior to 7.2.4, Astro stripped a configured non-root base path from request pathnames using a string-prefix check without verifying a path-segment boundary. With base "/app", a request to "/appX/admin" resolved internally to the protected "/admin" route while middleware observed "/appX/admin" in context.url.pathname. In applications that authorize base-prefixed routes by inspecting context.url.pathname, an unauthenticated remote attacker could bypass pathname-based middleware authorization and reach protected routes. This issue is fixed in version 7.2.4.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 1 npm packages depend on astro (1 direct, 0 indirect)

Ecosystem-wide dependent count for version 7.2.4.

Threat Intelligence Overview

EPSS Score
0.4%
Top 66% exploitable
Prevalence
Medium
popular modern web framework, growing but not ubiquitous enterprise-wide
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Total

Priority Score

52
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

More in Astro

View all
CVE-2018-7180 CRITICAL POC
9.8 Feb 17

SQL Injection exists in the Saxum Astro 4.0.14 component for Joomla!. Rated critical severity (CVSS 9.8), this vulnerabi

CVE-2026-25545 HIGH POC
8.6 Feb 24

Astro web framework versions prior to 9.5.4 contain a server-side request forgery vulnerability in error page handling t

CVE-2026-59731 HIGH POC
8.2 Jul 08

Authorization bypass in the Astro web framework version 6.4.7 lets remote unauthenticated attackers reach protected rout

CVE-2024-56159 HIGH POC
7.8 Dec 19

Astro is a web framework for content-driven websites. Rated high severity (CVSS 7.8), this vulnerability is remotely exp

CVE-2025-59837 HIGH POC
7.2 Oct 28

Server-side request forgery in Astro's built-in image proxy lets unauthenticated remote attackers force the server to fe

CVE-2025-58179 HIGH POC
7.2 Sep 05

Astro is a web framework for content-driven websites. Rated high severity (CVSS 7.2), this vulnerability is remotely exp

CVE-2025-55303 MEDIUM POC
6.9 Aug 19

Astro is a web framework for content-driven websites. Rated medium severity (CVSS 6.9), this vulnerability is remotely e

CVE-2025-64765 MEDIUM POC
6.9 Nov 19

Astro is a web framework. Rated medium severity (CVSS 6.9), this vulnerability is remotely exploitable, no authenticatio

CVE-2025-64525 MEDIUM POC
6.5 Nov 13

Astro is a web framework. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploitable, no authenticatio

CVE-2025-61925 MEDIUM POC
6.5 Oct 10

Unvalidated reflection of the X-Forwarded-Host header in Astro (versions before 5.14.3) lets remote, unauthenticated att

CVE-2026-27829 MEDIUM POC
6.5 Feb 26

Astro web framework versions 9.0.0 through 9.5.3 fail to validate remote image domains when the inferSize option is enab

CVE-2025-65019 MEDIUM POC
6.1 Nov 19

Astro is a web framework. Rated medium severity (CVSS 5.4), this vulnerability is remotely exploitable, no authenticatio

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy