Description
re2 provides Node.js bindings for Google's RE2 regular expression engine. Prior to 1.25.2, re2 validates lastIndex against the UTF-8 byte length of a subject but uses it as a UTF-16 code-unit offset in exec, test, match, replace, and split, allowing an attacker-influenced lastIndex on a non-ASCII subject to trigger an out-of-bounds heap read and an uncatchable process crash, with limited heap information disclosure in some cases. This issue is fixed in 1.25.2.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| uhop | node-re2 | < 1.25.2 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | node-re2 | 1.26.1+~cs1.7.0-1 | — |
| Debian 13 | node-re2 | No fix yet | — |
| Debian 12 | node-re2 | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | node-re2 | No fix yet | — |
| Ubuntu 26.04 LTS | node-re2 | No fix yet | — |
| Ubuntu 24.04 LTS | node-re2 | No fix yet | — |
| Ubuntu 22.04 LTS | node-re2 | No fix yet | — |
| Ubuntu 20.04 LTS | node-re2 | No fix yet | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| npm | re2 | < 1.25.2 | 1.25.2 | GHSA-ff84-5f28-78qj |