Sentry-Javascript: Middleware Bypass when using Tunnel route
Impact
Sentry-Javascript is an official Sentry SDKs for JavaScript. From 9.36.0 until 9.47.2, 10.75.2, and 11.0.0-rc.1, the webpack integration for @sentry/nextjs skips application middleware for every request path under a configured tunnelRoute, while the tunnel rewrite serves only the exact tunnel path with valid o and p query parameters. When an application route directly collides with the tunnel path or a root dynamic segment resolves under it, an unauthenticated request can reach that route without middleware authorization. Exploitation requires tunnelRoute, a webpack build, a colliding…
Source excerpt · GitHub_MExploitation requires tunnelRoute, a webpack build, a colliding route, and middleware being the only authorization control.
Affected packages
Affected products
Vendor version evidence. Product records are separate from automatic dependency matching.
getsentry · sentry-javascript
| Version / range | Source status |
|---|---|
| >= 9.36.0, < 9.47.2 | affected |
| >= 10.0.0-alpha.0, < 10.75.2 | affected |
| >= 11.0.0-alpha.0, < 11.0.0-rc.1 | affected |
Original source description
Sentry-Javascript is an official Sentry SDKs for JavaScript. From 9.36.0 until 9.47.2, 10.75.2, and 11.0.0-rc.1, the webpack integration for @sentry/nextjs skips application middleware for every request path under a configured tunnelRoute, while the tunnel rewrite serves only the exact tunnel path with valid o and p query parameters. When an application route directly collides with the tunnel path or a root dynamic segment resolves under it, an unauthenticated request can reach that route without middleware authorization. Exploitation requires tunnelRoute, a webpack build, a colliding route, and middleware being the only authorization control. This issue is fixed in versions 9.47.2, 10.75.2, and 11.0.0-rc.1.
References
- Security advisory github.com/getsentry/sentry-javascript/security/advisories/GHSA-mchm-gjx6-7h55
- Patch github.com/getsentry/sentry-javascript/pull/24499
- Patch github.com/getsentry/sentry-javascript/pull/24565
- Patch github.com/getsentry/sentry-javascript/pull/24760
- Patch github.com/getsentry/sentry-javascript/commit/878b685c85dc12045e47e1932c96f5381d7ac532
- Patch github.com/getsentry/sentry-javascript/commit/c122aac4f29541eb6da494296822c91eab3cf5ae
- Patch github.com/getsentry/sentry-javascript/commit/d525a2f6015b47384bc139c30d58e0d5435d52e5
- Release notes github.com/getsentry/sentry-javascript/releases/tag/10.75.2
- Release notes github.com/getsentry/sentry-javascript/releases/tag/11.0.0-rc.1
- Release notes github.com/getsentry/sentry-javascript/releases/tag/9.47.2