{"id":"GHSA-mchm-gjx6-7h55","revision":null,"records":[{"revision":"2b365592b5dd4523bda9e864e2d3fea1","observedAt":"2026-10-28T02:51:34.363+00:00","statement":{"source":"cve-program","id":"CVE-2026-114139","aliases":[],"title":"Sentry-Javascript: Middleware Bypass when using Tunnel route","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.","state":0,"publishedAt":"2026-10-21T20:14:34.419+00:00","modifiedAt":"2026-10-28T01:38:14.177+00:00","affected":[{"ecosystem":"Vendor product","name":"sentry-javascript","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"getsentry\",\n                    \"product\": \"sentry-javascript\",\n                    \"versions\": [\n                        {\n                            \"version\": \">= 9.36.0, < 9.47.2\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \">= 10.0.0-alpha.0, < 10.75.2\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \">= 11.0.0-alpha.0, < 11.0.0-rc.1\",\n                            \"status\": \"affected\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","score":9.1,"severity":"CRITICAL"}],"references":["https://github.com/getsentry/sentry-javascript/security/advisories/GHSA-mchm-gjx6-7h55","https://github.com/getsentry/sentry-javascript/pull/24499","https://github.com/getsentry/sentry-javascript/pull/24565","https://github.com/getsentry/sentry-javascript/pull/24760","https://github.com/getsentry/sentry-javascript/commit/878b685c85dc12045e47e1932c96f5381d7ac532","https://github.com/getsentry/sentry-javascript/commit/c122aac4f29541eb6da494296822c91eab3cf5ae","https://github.com/getsentry/sentry-javascript/commit/d525a2f6015b47384bc139c30d58e0d5435d52e5","https://github.com/getsentry/sentry-javascript/releases/tag/10.75.2","https://github.com/getsentry/sentry-javascript/releases/tag/11.0.0-rc.1","https://github.com/getsentry/sentry-javascript/releases/tag/9.47.2"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-114139","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-114139","identifiers":["CVE-2026-114139"]},"retained":false,"historicalAffected":[]},{"revision":"f3afbe4ed5464babbefdb1a3589c1a38","observedAt":"2026-10-30T01:58:58.884+00:00","statement":{"source":"euvd","id":"EUVD-2026-107549","aliases":["CVE-2026-114139","GHSA-mchm-gjx6-7h55"],"title":"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, …","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.","state":0,"publishedAt":null,"modifiedAt":null,"affected":[],"metrics":[{"system":"EUVD CVSS 4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","score":9.1,"severity":null}],"references":["https://github.com/getsentry/sentry-javascript/security/advisories/GHSA-mchm-gjx6-7h55","https://github.com/getsentry/sentry-javascript/pull/24499","https://github.com/getsentry/sentry-javascript/pull/24565","https://github.com/getsentry/sentry-javascript/pull/24760","https://github.com/getsentry/sentry-javascript/commit/878b685c85dc12045e47e1932c96f5381d7ac532","https://github.com/getsentry/sentry-javascript/commit/c122aac4f29541eb6da494296822c91eab3cf5ae","https://github.com/getsentry/sentry-javascript/commit/d525a2f6015b47384bc139c30d58e0d5435d52e5","https://github.com/getsentry/sentry-javascript/releases/tag/10.75.2","https://github.com/getsentry/sentry-javascript/releases/tag/11.0.0-rc.1","https://github.com/getsentry/sentry-javascript/releases/tag/9.47.2"],"sourceUrl":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-107549","license":"ENISA EUVD · source terms and attribution apply","enrichment":{"sourceStatus":null,"weaknesses":[],"productCriteria":[],"sourceDates":{"datePublished":"Oct 21, 2026, 8:14:34 PM","dateUpdated":"Oct 28, 2026, 1:38:14 AM"},"relatedAdvisories":[],"note":"EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON."},"key":"euvd:EUVD-2026-107549","identifiers":["EUVD-2026-107549","CVE-2026-114139","GHSA-mchm-gjx6-7h55"]},"retained":false,"historicalAffected":[]},{"revision":"73c9a133cb884413839525e7d22d4152","observedAt":"2026-10-29T06:48:04.607+00:00","statement":{"source":"nvd","id":"CVE-2026-114139","aliases":[],"title":"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, …","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.","state":0,"publishedAt":"2026-10-21T21:17:56.353+00:00","modifiedAt":"2026-10-28T02:17:05.363+00:00","affected":[],"metrics":[{"system":"CVSS 4.0 · security-advisories@github.com · Secondary","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/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","score":9.1,"severity":"CRITICAL"}],"references":["https://github.com/getsentry/sentry-javascript/commit/878b685c85dc12045e47e1932c96f5381d7ac532","https://github.com/getsentry/sentry-javascript/commit/c122aac4f29541eb6da494296822c91eab3cf5ae","https://github.com/getsentry/sentry-javascript/commit/d525a2f6015b47384bc139c30d58e0d5435d52e5","https://github.com/getsentry/sentry-javascript/pull/24499","https://github.com/getsentry/sentry-javascript/pull/24565","https://github.com/getsentry/sentry-javascript/pull/24760","https://github.com/getsentry/sentry-javascript/releases/tag/10.75.2","https://github.com/getsentry/sentry-javascript/releases/tag/11.0.0-rc.1","https://github.com/getsentry/sentry-javascript/releases/tag/9.47.2","https://github.com/getsentry/sentry-javascript/security/advisories/GHSA-mchm-gjx6-7h55"],"sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-114139","license":"NIST NVD usage terms; underlying source attribution retained","enrichment":{"sourceStatus":"Awaiting Analysis","weaknesses":["CWE-693"],"productCriteria":[],"sourceDates":{"published":"2026-10-21T21:17:56.353","lastModified":"2026-10-28T02:17:05.363"},"relatedAdvisories":[],"note":"NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON."},"key":"nvd:CVE-2026-114139","identifiers":["CVE-2026-114139"]},"retained":false,"historicalAffected":[]},{"revision":"447ca9e3b73e4aacad6b0a50e5e18884","observedAt":"2026-10-24T13:17:17.793+00:00","statement":{"source":"osv","id":"GHSA-mchm-gjx6-7h55","aliases":["CVE-2026-114139"],"title":"Sentry-Javascript: Middleware Bypass when using Tunnel route","description":"### Impact\n\nThe `tunnelRoute` option makes the SDK send browser events to a path on your own Next.js server (for example `/monitoring`), where a rewrite forwards them to Sentry to prevent ad blockers from blocking them. To keep those envelope requests from being rejected by your middleware, the SDK skips middleware for them.\n\nThe middleware skip was wider than the rewrite. The rewrite only serves requests to the tunnel path itself with the `o` and `p` parameters set. The skip applied to anything under the tunnel path. Requests in that gap go to your application instead of Sentry, and your middleware never runs on them.\n\nSkipping middleware does not grant the request any privileges. Routes that check the session server-side are still protected.\n\nYou are affected only if **all** of the following are true:\n\n1. `tunnelRoute` is set (a string path or `true`),\n2. your app is built with **webpack** (Turbopack builds are not affected),\n3. some route of your application resolves under the tunnel path. That could be a direct collision (`/monitoring/foo` with `tunnelRoute: '/monitoring'`) or a dynamic segment at the route root (`app/[locale]/…`), which matches any first path segment, and\n4. your middleware is the only place that enforces authorization for those routes.\n\nSentry's own services, and the data in your Sentry organization, are not affected.\n\n### Patches\n\nFixed in [9.47.2](https://github.com/getsentry/sentry-javascript/releases/tag/9.47.2), [10.75.2](https://github.com/getsentry/sentry-javascript/releases/tag/10.75.2) and [11.0.0-rc.1](https://github.com/getsentry/sentry-javascript/releases/tag/11.0.0-rc.1). The skip now matches only the requests the tunnel rewrite actually serves. No configuration change is needed.\n\n### Workarounds\n\n- Set `tunnelRoute` to a path no route of yours can resolve under, or remove the option.\n- Build with Turbopack (default for `next build` from Next.js 16).\n- Enforce authorization in the route, layout or data-access path as well as in middleware.","state":0,"publishedAt":"2026-10-22T15:55:07+00:00","modifiedAt":"2026-10-22T16:00:09.1169971+00:00","affected":[{"ecosystem":"npm","name":"@sentry/nextjs","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"9.36.0"},{"kind":"fixed","version":"9.47.2"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"npm","name":"@sentry/nextjs","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"10.0.0-alpha.0"},{"kind":"fixed","version":"10.75.2"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"npm","name":"@sentry/nextjs","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"11.0.0-alpha.0"},{"kind":"fixed","version":"11.0.0-rc.1"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[{"system":"CVSS_V4","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","score":null,"severity":null},{"system":"Publisher rating","vector":null,"score":null,"severity":"CRITICAL"}],"references":["https://github.com/getsentry/sentry-javascript/security/advisories/GHSA-mchm-gjx6-7h55","https://nvd.nist.gov/vuln/detail/CVE-2026-114139","https://github.com/getsentry/sentry-javascript/pull/24499","https://github.com/getsentry/sentry-javascript/pull/24565","https://github.com/getsentry/sentry-javascript/pull/24760","https://github.com/getsentry/sentry-javascript/commit/878b685c85dc12045e47e1932c96f5381d7ac532","https://github.com/getsentry/sentry-javascript/commit/c122aac4f29541eb6da494296822c91eab3cf5ae","https://github.com/getsentry/sentry-javascript/commit/d525a2f6015b47384bc139c30d58e0d5435d52e5","https://github.com/getsentry/sentry-javascript","https://github.com/getsentry/sentry-javascript/releases/tag/10.75.2","https://github.com/getsentry/sentry-javascript/releases/tag/11.0.0-rc.1","https://github.com/getsentry/sentry-javascript/releases/tag/9.47.2"],"sourceUrl":"https://github.com/advisories/GHSA-mchm-gjx6-7h55","license":"GitHub Advisory Database · CC-BY-4.0","key":"osv:GHSA-mchm-gjx6-7h55","identifiers":["GHSA-mchm-gjx6-7h55","CVE-2026-114139"]},"retained":false,"historicalAffected":[]}],"coverage":[{"source":"cisa-kev:global","scope":"Complete CISA KEV catalog; all vendors. Missing entries do not establish absence of exploitation.","generation":"2026-10-31T17:06:49.5453808+00:00","complete":true,"records":1766,"lastAttemptAt":"2026-10-31T17:06:49.5453808+00:00","lastSuccessAt":"2026-10-31T17:06:49.7005889+00:00","error":null,"lastVerifiedAt":"2026-10-31T17:06:49.7005902+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"cve-program","scope":"Official CVE Program baseline and cumulative hourly delta; all vendors, published and rejected records","generation":"cve-9266d7b009bf9c4a0ccdcb5cbdea7f905cb3c4d92fd3b41581ece16b2cfdc4e7-784b766ea38315a717f0f300983019726d402e8f914672a2c27c9b5c7ac467c0","complete":true,"records":417579,"lastAttemptAt":"2026-10-31T17:04:51.2200836+00:00","lastSuccessAt":"2026-10-31T17:04:51.1803831+00:00","error":null,"lastVerifiedAt":"2026-10-31T17:04:51.2200836+00:00","snapshotPublishedAt":"2026-10-31T16:26:28+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"euvd","scope":"Rolling EUVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global EUVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-1ea90a365f5b43ef9a5b92be53fe0867","complete":true,"records":13565,"lastAttemptAt":"2026-10-31T17:07:15.7147939+00:00","lastSuccessAt":"2026-10-31T11:34:32.033+00:00","error":null,"lastVerifiedAt":"2026-10-31T11:34:32.033+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13637,"expectedIdentifiers":13637,"failedIdentifiers":0},{"source":"first-epss:nuget","scope":"FIRST EPSS for explicit CVE aliases in the collected public NuGet archive. Not a global EPSS backfill.","generation":"2026-10-31T17:06:49.5453808+00:00","complete":true,"records":1094,"lastAttemptAt":"2026-10-31T17:06:49.5453808+00:00","lastSuccessAt":"2026-10-31T17:06:49.7014183+00:00","error":null,"lastVerifiedAt":"2026-10-31T17:06:49.7014185+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"nvd","scope":"Rolling NVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global NVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-76f55bade79746ceb7d00f18b2c86efc","complete":true,"records":13578,"lastAttemptAt":"2026-10-31T17:07:15.0280111+00:00","lastSuccessAt":"2026-10-31T17:07:15.025+00:00","error":null,"lastVerifiedAt":"2026-10-31T17:07:15.025+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13637,"expectedIdentifiers":13637,"failedIdentifiers":0},{"source":"osv:Go","scope":"Complete OSV Go ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"go-21dcd6662970dfea02e4ea60ee637115e8d92664947484d2b9276b3f6568a84f","complete":true,"records":9815,"lastAttemptAt":"2026-10-31T17:06:49.3868114+00:00","lastSuccessAt":"2026-10-30T23:47:34.1817587+00:00","error":null,"lastVerifiedAt":"2026-10-31T17:06:49.3868114+00:00","snapshotPublishedAt":"2026-10-30T23:33:17+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:NuGet","scope":"Complete OSV NuGet ecosystem archive, including GitHub Advisory Database records; NuGet version matching only","generation":"nuget-2de9ccc5290f060c7aa63f89c25dd76f655a64ba1aba7c05c97fa3bee4f09899","complete":true,"records":1967,"lastAttemptAt":"2026-10-31T17:04:51.3839718+00:00","lastSuccessAt":"2026-10-28T20:55:34.2982937+00:00","error":null,"lastVerifiedAt":"2026-10-31T17:04:51.3839718+00:00","snapshotPublishedAt":"2026-10-28T20:03:08+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:crates.io","scope":"Complete OSV crates.io ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"crates.io-f95f76cd406ae5bae3de632ad37fd2d5160b44f5e6b51748ac6f8f0c0c88e72b","complete":true,"records":3028,"lastAttemptAt":"2026-10-31T17:06:49.5070707+00:00","lastSuccessAt":"2026-10-30T23:47:38.4914494+00:00","error":null,"lastVerifiedAt":"2026-10-31T17:06:49.5070707+00:00","snapshotPublishedAt":"2026-10-30T23:18:12+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:npm","scope":"Complete OSV npm ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"npm-712291bb5a0ee4f1ca7325e317f98ff05e9ab8d14f863abf00a323d9e6d8331e","complete":true,"records":230994,"lastAttemptAt":"2026-10-31T17:06:49.2526999+00:00","lastSuccessAt":"2026-10-31T17:06:47.8999408+00:00","error":null,"lastVerifiedAt":"2026-10-31T17:06:49.2526999+00:00","snapshotPublishedAt":"2026-10-31T16:33:38+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null}]}