CyberRota Analysis
AI-GeneratedThe WrappedRE2::Replace function in node-re2 versions prior to 1.25.1 is vulnerable to a denial-of-service condition, where an unchecked output from a global replace operation can lead to a fatal process abort if the resulting string exceeds V8's maximum length. This issue arises particularly when using output amplifying replacement templates, potentially causing significant disruption in applications relying on this functionality. Developers and organizations utilizing node-re2 for Node.js applications should prioritize upgrading to version 1.25.1 to mitigate this risk.
Public Exploit Signal
A public exploit, PoC, GitHub repository or Metasploit reference was detected for this CVE.
Note: these links are listed for security research and verification purposes only.
Original NVD Description
node-re2 provides RE2 regular expression bindings for Node.js. Prior to version 1.25.1, the WrappedRE2::Replace function built its replacement result and passed it to V8 using ToLocalChecked without checking for the empty MaybeLocal that V8 returns when the resulting string or buffer exceeds V8's maximum string length. When a global replace uses an output amplifying replacement template, the result can grow quadratically with the input size, and once the result exceeds V8's maximum string length, the unchecked ToLocalChecked call causes a fatal, uncatchable process abort instead of a catchable exception. This issue is fixed in version 1.25.1.