Headline
GHSA-x3v3-8xg8-8v72: Sentry's Astro SDK vulnerable to ReDoS
Impact
A ReDoS (Regular expression Denial of Service) vulnerability has been identified in Sentry’s Astro SDK 7.78.0-7.86.0. Under certain conditions, this vulnerability allows an attacker to cause excessive computation times on the server, leading to denial of service (DoS).
Applications that are using Sentry’s Astro SDK are affected if:
- They’re using Sentry instrumentation:
- they have manually registered Sentry Middleware (affected versions 7.78.0-7.86.0);
- or configured Astro in SSR (server) or hybrid mode, use Astro 3.5.0 and newer and didn’t disable the automatic server instrumentation (affected versions 7.82.0-7.86.0).
- They have configured routes with at least two path params (e.g.
/foo/[p1]/bar/[p2]
).
Patches
The problem has been patched in @sentry/[email protected]. The corresponding PR: https://github.com/getsentry/sentry-javascript/pull/9815
Workarounds
We strongly recommend upgrading to the latest SDK version. However, if it’s not possible, the steps to mitigate the vulnerability without upgrade are:
- disable auto instrumentation if you’re using Astro 3.5.0 or newer
- and remove the manually added Sentry middleware (if it was added before).
After these changes, Sentry error reporting will still be functional, but some details such as server-side transactions (and consequently, distributed traces between client and server) will be omitted. We therefore still recommend to update to 7.87.0 as soon as you can.
References
Impact
A ReDoS (Regular expression Denial of Service) vulnerability has been identified in Sentry’s Astro SDK 7.78.0-7.86.0. Under certain conditions, this vulnerability allows an attacker to cause excessive computation times on the server, leading to denial of service (DoS).
Applications that are using Sentry’s Astro SDK are affected if:
- They’re using Sentry instrumentation:
- they have manually registered Sentry Middleware (affected versions 7.78.0-7.86.0);
- or configured Astro in SSR (server) or hybrid mode, use Astro 3.5.0 and newer and didn’t disable the automatic server instrumentation (affected versions 7.82.0-7.86.0).
- They have configured routes with at least two path params (e.g. /foo/[p1]/bar/[p2]).
Patches
The problem has been patched in @sentry/[email protected].
The corresponding PR: getsentry/sentry-javascript#9815
Workarounds
We strongly recommend upgrading to the latest SDK version. However, if it’s not possible, the steps to mitigate the vulnerability without upgrade are:
- disable auto instrumentation if you’re using Astro 3.5.0 or newer
- and remove the manually added Sentry middleware (if it was added before).
After these changes, Sentry error reporting will still be functional, but some details such as server-side transactions (and consequently, distributed traces between client and server) will be omitted. We therefore still recommend to update to 7.87.0 as soon as you can.
References
- Sentry docs: Manual Setup for Astro
- Release notes: sentry-javascript 7.87.0
- npm: @sentry/[email protected]
References
- GHSA-x3v3-8xg8-8v72
- getsentry/sentry-javascript#9815
- getsentry/sentry-javascript@fe24eb5
- https://docs.sentry.io/platforms/javascript/guides/astro/manual-setup/#disable-auto-server-instrumentation
- https://www.npmjs.com/package/@sentry/astro/v/7.87.0