CVE-2026-45028
Astro: Server island encrypted parameters vulnerable to cross-component replay
Astro is a web framework. Astro versions prior to 6.1.10 used AES-GCM encryption to protect the confidentiality and integrity of server island props and slots parameters, but did not bind the ciphertext to its intended component or parameter type. An attacker could replay one component's encrypted props (p) value as another component's slots (s) value, or vice versa. Since slots contain raw unescaped HTML while props may contain user-controlled values, this could lead to XSS in applications. This occurs when the application uses server islands, two different server island components share the same key name for a prop and a slot, and an attacker has full control over the value of the overlapping prop (requires a dynamically rendered page). This vulnerability is fixed in 6.1.10.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- Low
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
2.9
Astro: Server island encrypted parameters vulnerable to cross-component replay
Astro is a web framework. Astro versions prior to 6.1.10 used AES-GCM encryption to protect the confidentiality and integrity of server island props and slots parameters, but did not bind the ciphertext to its intended component or parameter type. An attacker could replay one component's encrypted props (p) value as another component's slots (s) value, or vice versa. Since slots contain raw unescaped HTML while props may contain user-controlled values, this could lead to XSS in applications. This occurs when the application uses server islands, two different server island components share the same key name for a prop and a slot, and an attacker has full control over the value of the overlapping prop (requires a dynamically rendered page). This vulnerability is fixed in 6.1.10.
- Record
CVE-2026-45028- CVSS 4.0
- 2.9 Low
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P - Weakness
- CWE-323
- Updated
- 2026-11-02
EUVDEUVD-2026-30054
2.9
Astro is a web framework. Astro versions prior to 6.1.10 used AES-GCM encryption to protect the confidentiality and integrity of server island props and slots parameters, but did not bind the ciphertext to its intended component or parameter type. An attacker could replay one component's encrypted props (p) value as another component's slots (s) value, or vice versa. Since slots contain raw unescaped HTML while props may contain user-controlled values, this could lead to XSS in applications. This occurs when the application uses server islands, two different server island components share the same key name for a prop and a slot, and an attacker has full control over the value of the overlapping prop (requires a dynamically rendered page). This vulnerability is fixed in 6.1.10.
- Record
EUVD-2026-30054- CVSS 4.0
- 2.9 Low
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-xr5h-phrj-8vxv
2.9
Astro: Server island encrypted parameters vulnerable to cross-component replay
Impact
Astro versions prior to 6.1.10 used AES-GCM encryption to protect the confidentiality and integrity of server island props and slots parameters, but did not bind the ciphertext to its intended component or parameter type. An attacker could replay one component's encrypted props (p) value as another component's slots (s) value, or vice versa.
Since slots contain raw unescaped HTML while props may contain user-controlled values, this could lead to XSS in applications that meet all of the following conditions:
- The application uses server islands
- Two different server island components share the same key name for a prop and a slot
- An attacker has full control over the value of the overlapping prop (requires a dynamically rendered page)
These conditions are very unlikely to occur in real-world production applications.
Patches
This has been patched in [email protected].
The fix binds each encrypted parameter to its target component and purpose using AES-GCM authenticated additional data (AAD). Each ciphertext now includes context like props:IslandName or slots:IslandName, so encrypted data for one component cannot be replayed against a different component, and encrypted props cannot be reused as slots.
References
- Fix PR: https://github.com/withastro/astro/pull/16457
- Example demonstrating the vulnerability: https://github.com/CyberSecurityAustria/ACSC2026-web-astronomical
- Record
GHSA-xr5h-phrj-8vxv- CVSS 4.0
- 2.9 Low
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P - CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Weakness
- CWE-79, CWE-323
- Updated
- 2026-11-02
NVD
2.9
Astro is a web framework. Astro versions prior to 6.1.10 used AES-GCM encryption to protect the confidentiality and integrity of server island props and slots parameters, but did not bind the ciphertext to its intended component or parameter type. An attacker could replay one component's encrypted props (p) value as another component's slots (s) value, or vice versa. Since slots contain raw unescaped HTML while props may contain user-controlled values, this could lead to XSS in applications. This occurs when the application uses server islands, two different server island components share the same key name for a prop and a slot, and an attacker has full control over the value of the overlapping prop (requires a dynamically rendered page). This vulnerability is fixed in 6.1.10.
- Record
CVE-2026-45028- CVSS 4.0
- 2.9 Low
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Weakness
- CWE-323, CWE-79
- Updated
- 2026-11-02
OSV
2.9
Astro: Server island encrypted parameters vulnerable to cross-component replay
Astro is a web framework. Astro versions prior to 6.1.10 used AES-GCM encryption to protect the confidentiality and integrity of server island props and slots parameters, but did not bind the ciphertext to its intended component or parameter type. An attacker could replay one component's encrypted props (p) value as another component's slots (s) value, or vice versa. Since slots contain raw unescaped HTML while props may contain user-controlled values, this could lead to XSS in applications. This occurs when the application uses server islands, two different server island components share the same key name for a prop and a slot, and an attacker has full control over the value of the overlapping prop (requires a dynamically rendered page). This vulnerability is fixed in 6.1.10.
- Record
CVE-2026-45028- CVSS 4.0
- 2.9 Low
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P - Weakness
- CWE-323
- Updated
- 2026-11-02
OSVGHSA-xr5h-phrj-8vxv
2.9
Astro: Server island encrypted parameters vulnerable to cross-component replay
Impact
Astro versions prior to 6.1.10 used AES-GCM encryption to protect the confidentiality and integrity of server island props and slots parameters, but did not bind the ciphertext to its intended component or parameter type. An attacker could replay one component's encrypted props (p) value as another component's slots (s) value, or vice versa.
Since slots contain raw unescaped HTML while props may contain user-controlled values, this could lead to XSS in applications that meet all of the following conditions:
- The application uses server islands
- Two different server island components share the same key name for a prop and a slot
- An attacker has full control over the value of the overlapping prop (requires a dynamically rendered page)
These conditions are very unlikely to occur in real-world production applications.
Patches
This has been patched in [email protected].
The fix binds each encrypted parameter to its target component and purpose using AES-GCM authenticated additional data (AAD). Each ciphertext now includes context like props:IslandName or slots:IslandName, so encrypted data for one component cannot be replayed against a different component, and encrypted props cannot be reused as slots.
References
- Fix PR: https://github.com/withastro/astro/pull/16457
- Example demonstrating the vulnerability: https://github.com/CyberSecurityAustria/ACSC2026-web-astronomical
- Record
GHSA-xr5h-phrj-8vxv- CVSS 4.0
- 2.9 Low
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P - CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Weakness
- CWE-323, CWE-79
- Updated
- 2026-11-02
Show 6 moreShow less
OSVCLSA-2026-1789031241 No score
TuxCare security update for astro (1 CVE)
TuxCare rebuilt astro to address 1 CVE. Fixed in 5.18.1-tuxcare.6.
- Record
CLSA-2026-1789031241- Updated
- 2026-11-02
OSVCLSA-2026-1792161562 No score
TuxCare security update for @astrojs/internal-helpers (1 CVE)
TuxCare rebuilt @astrojs/internal-helpers to address 1 CVE. Fixed in 5.18.1-tuxcare.6.
- Record
CLSA-2026-1792161562- Updated
- 2026-11-02
OSVCLSA-2026-1792161707 No score
TuxCare security update for @astrojs/prism (1 CVE)
TuxCare rebuilt @astrojs/prism to address 1 CVE. Fixed in 5.18.1-tuxcare.6.
- Record
CLSA-2026-1792161707- Updated
- 2026-11-02
OSVCLSA-2026-1792161794 No score
TuxCare security update for @astrojs/underscore-redirects (1 CVE)
TuxCare rebuilt @astrojs/underscore-redirects to address 1 CVE. Fixed in 5.18.1-tuxcare.6.
- Record
CLSA-2026-1792161794- Updated
- 2026-11-02
OSVCLSA-2026-1792161859 No score
TuxCare security update for @astrojs/upgrade (1 CVE)
TuxCare rebuilt @astrojs/upgrade to address 1 CVE. Fixed in 5.18.1-tuxcare.6.
- Record
CLSA-2026-1792161859- Updated
- 2026-11-02
OSVCLSA-2026-1792454046 No score
TuxCare security update for astro (9 CVEs)
TuxCare rebuilt astro to address 9 CVEs. Fixed in 5.18.2-tuxcare.1.
- Record
CLSA-2026-1792454046- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
astronpm |
before 6.1.10 | 6.1.10 |
astroTuxCare:npm |
5.18.1-tuxcare.0 up to 5.18.1-tuxcare.6, plus listed versions 5.18.15.18.1-tuxcare.15.18.1-tuxcare.25.18.1-tuxcare.35.18.1-tuxcare.45.18.1-tuxcare.5 |
5.18.1-tuxcare.6 |
@astrojs/internal-helpersTuxCare:npm |
5.18.1-tuxcare.0 up to 5.18.1-tuxcare.6, plus listed versions 5.18.15.18.1-tuxcare.25.18.1-tuxcare.35.18.1-tuxcare.45.18.1-tuxcare.5 |
5.18.1-tuxcare.6 |
@astrojs/prismTuxCare:npm |
5.18.1-tuxcare.0 up to 5.18.1-tuxcare.6, plus listed versions 5.18.15.18.1-tuxcare.25.18.1-tuxcare.35.18.1-tuxcare.45.18.1-tuxcare.5 |
5.18.1-tuxcare.6 |
@astrojs/underscore-redirectsTuxCare:npm |
5.18.1-tuxcare.0 up to 5.18.1-tuxcare.6, plus listed versions 5.18.15.18.1-tuxcare.25.18.1-tuxcare.35.18.1-tuxcare.45.18.1-tuxcare.5 |
5.18.1-tuxcare.6 |
@astrojs/upgradeTuxCare:npm |
5.18.1-tuxcare.0 up to 5.18.1-tuxcare.6, plus listed versions 5.18.15.18.1-tuxcare.25.18.1-tuxcare.35.18.1-tuxcare.45.18.1-tuxcare.5 |
5.18.1-tuxcare.6 |
astroTuxCare:npm From an advisory covering 9 CVEs |
5.18.2-tuxcare.0 up to 5.18.2-tuxcare.1, plus listed versions 5.18.2 |
5.18.2-tuxcare.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-45028 is a low vulnerability (CVSS 2.9) in Astro, published May 13, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.14%, the 3rd percentile. Fixed in astro 6.1.10.
References
github.com/withastro/astro/security/advisories/GHSA-xr5h-phrj-8vxv
github.com/withastro/astro/pull/16457
github.com/withastro/astro/commit/3d82220a1549e699e34ed433f3846a919f4c02bd
nvd.nist.gov/vuln/detail/CVE-2026-45028
github.com/advisories/GHSA-xr5h-phrj-8vxv
github.com/CVEProject/cvelistV5/tree/main/cves/2026/45xxx/CVE-2026-45028.json
github.com/withastro/astro