← Back to CVE Explorer

CVE-2026-116795

Full vulnerability record from the local CVENow database.

Description

RE2JS is the JavaScript port of RE2, a regular expression engine that provides linear time matching. From 2.2.0 until 2.8.7, enabling LOOKBEHINDS and using repeated matching through matcher().find(), matchAll(), split(), or matcher().replaceAll() can cause quadratic total work. Machine.match restarts lookbehind scanning from offset zero for each requested start position, while Matcher-based APIs request capture slots that prevent the early exit used for captureless matching. Dense matches therefore repeatedly rescan the input, allowing attacker-influenced text to monopolize a single-threaded worker and deny service. This issue is fixed in version 2.8.7.

Severity
HIGH
CVSS score
7.5 (v3.1)
Vulnerability status
Awaiting Analysis
Source identifier
Published
2026-10-28 18:17:14.303000
Last modified
2026-10-29 16:19:37.750000
View original CVE JSON
{
  "id": "CVE-2026-116795",
  "sourceIdentifier": "[email protected]",
  "published": "2026-10-28T18:17:14.303",
  "lastModified": "2026-10-29T16:19:37.750",
  "vulnStatus": "Awaiting Analysis",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "RE2JS is the JavaScript port of RE2, a regular expression engine that provides linear time matching. From 2.2.0 until 2.8.7, enabling LOOKBEHINDS and using repeated matching through matcher().find(), matchAll(), split(), or matcher().replaceAll() can cause quadratic total work. Machine.match restarts lookbehind scanning from offset zero for each requested start position, while Matcher-based APIs request capture slots that prevent the early exit used for captureless matching. Dense matches therefore repeatedly rescan the input, allowing attacker-influenced text to monopolize a single-threaded worker and deny service. This issue is fixed in version 2.8.7."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "le0pard",
          "product": "re2js",
          "versions": [
            {
              "version": ">= 2.2.0, < 2.8.7",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
          "baseScore": 7.5,
          "baseSeverity": "HIGH",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "privilegesRequired": "NONE",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "NONE",
          "integrityImpact": "NONE",
          "availabilityImpact": "HIGH"
        },
        "exploitabilityScore": 3.9,
        "impactScore": 3.6
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Primary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-407"
        },
        {
          "lang": "en",
          "value": "CWE-1333"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/le0pard/re2js/commit/dfdd947785dfa113bdc97416375c246a39458395",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/le0pard/re2js/pull/59",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/le0pard/re2js/releases/tag/2.8.7",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/le0pard/re2js/security/advisories/GHSA-gg6h-894w-4m9c",
      "source": "[email protected]"
    }
  ]
}