Skip to content

In Astro-Shield, setting a correct `integrity` attribute to injected code allows to bypass the allow-lists

High severity GitHub Reviewed Published Mar 31, 2024 in kindspells/astro-shield • Updated Apr 4, 2024

Package

npm @kindspells/astro-shield (npm)

Affected versions

>= 1.2.0, < 1.3.2

Patched versions

1.3.2

Description

Impact

Versions from 1.2.0 to 1.3.1 of Astro-Shield allow to bypass the allow-lists for cross-origin resources by introducing valid integrity attributes to the injected code. This implies that the injected SRI hash would be added to the generated CSP header, which would lead the browser to believe that the injected resource is legit.

To exploit this vulnerability, the attacker needs to first inject code into the rendered pages by exploiting other not-related potential vulnerabilities.

Patches

Version 1.3.2 provides a patch.

Workarounds

  • To not use the middleware functionality of Astro-Shield.
  • To use the middleware functionality of Astro-Shield ONLY for content that cannot be controlled in any way by external users.

References

Are there any links users can visit to find out more?

References

@castarco castarco published to kindspells/astro-shield Mar 31, 2024
Published to the GitHub Advisory Database Apr 1, 2024
Reviewed Apr 1, 2024
Published by the National Vulnerability Database Apr 4, 2024
Last updated Apr 4, 2024

Severity

High
7.5
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
None
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N

Weaknesses

CVE ID

CVE-2024-30250

GHSA ID

GHSA-c4gr-q97g-ppwc

Credits

Checking history
See something to contribute? Suggest improvements for this vulnerability.