CVE-2023-26103 json
Regular Expression Denial of Service in Deno.upgradeWebSocket API
published 2023-02-25 3 y ago modified 2026-07-25 3 mo ago also EUVD-2023-1335 , GHSA-jc97-h3h9-7xh6 , JLSEC-2026-101
- cvss
- 5.3
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 1.2%
- EPSS 1.2% chance of exploitation in 30 days, percentile 69%
- public exploits
- 0
- none known
Summary
Versions of the package deno before 1.31.0 are vulnerable to Regular Expression Denial of Service (ReDoS) due to the upgradeWebSocket function, which contains regexes in the form of /s*,s*/, used for splitting the Connection/Upgrade header. A specially crafted Connection/Upgrade header can be used to significantly slow down a web socket server.
Patch / fix
- crates.io deno 1.31.0
- julia Deno_jll 1.33.4+0
- n/a deno 1.31.0
- github.com/denoland/deno@cf06a7c commit
- github.com/denoland/deno#17722 pull request
- github.com/denoland/deno/releases/tag/v1.31.0 release
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 19 mo ago
Exploit prediction
1.23% chance of exploitation in the next 30 days, higher than 69% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- security.snyk.io https://security.snyk.io/vuln/SNYK-RUST-DENO-3315970 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L |
| GitHub | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L |
| NVD | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
| OSV | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| crates.io | deno | >=1.12.0, <1.31.0 |
1.31.0 |
| julia | Deno_jll | <1.33.4+0 |
1.33.4+0 |
Affected products
- n/a deno
Classification
- Weakness
-
- CWE-1333 Inefficient Regular Expression Complexity
References
-
github.com
/denoland/deno/pull/17722
web, patch
-
github.com
/denoland/deno/commit/cf06a7c7e672880e1b38598fe445e2c50b4a9d06
web, patch
-
security.snyk.io
/vuln/SNYK-RUST-DENO-3315970
web, exploit, technical-description, third-party-advisory
-
github.com
/denoland/deno/blob/2b247be517d789a37e532849e2e40b724af0918f/ext/http/01_http.js%23L395-L409
broken-link, web
-
github.com
/denoland/deno/releases/tag/v1.31.0
web, release-notes
-
github.com
/denoland/deno/security/advisories/GHSA-jc97-h3h9-7xh6
web
-
nvd.nist.gov
/vuln/detail/CVE-2023-26103
advisory
-
github.com
/denoland/deno
package
-
github.com
/denoland/deno/blob/2b247be517d789a37e532849e2e40b724af0918f/ext/http/01_http.js#L395-L409
web
Sources
- CVE List CVE-2023-26103
- GitHub Advisory GHSA-jc97-h3h9-7xh6
- NVD CVE-2023-26103
- OSV JLSEC-2026-101
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.