Problem/Motivation
Drupal core currently includes Underscore.js 1.13.7, which is affected by CVE-2026-27601.
In versions prior to 1.13.8, the functions .flatten and .isEqual use recursion without a depth limit. Under specific conditions, this can lead to a stack overflow and be exploited as a Denial of Service (DoS).
The vulnerability is classified as:
CWE-770: Allocation of Resources Without Limits or Throttling
CVSS v4 Base Score: 8.2 (HIGH)
CVSS v3.1 Base Score: 7.5 (HIGH)
The issue is fixed in Underscore.js 1.13.8.
References:
https://github.com/jashkenas/underscore/security/advisories/GHSA-qpx9-hp...
https://underscorejs.org/#1.13.8
Create a deeply nested recursive data structure from untrusted input (e.g., via JSON.parse without depth validation).
Pass the structure to .flatten without specifying a finite depth limit,
or compare two attacker-controlled structures using .isEqual.
Trigger a stack overflow leading to a Denial of Service condition.
Update the bundled Underscore.js library in Drupal core from 1.13.7 to 1.13.8, which includes the upstream fix.
Update the Underscore.js library to version 1.13.8.
Verify no regressions in core JavaScript behaviors.
Confirm library metadata and license headers remain accurate.
Run automated tests.
Proposed resolution
Updated Underscore.js from 1.13.7 to 1.13.8 to address CVE-2026-27601 (Denial of Service vulnerability related to uncontrolled recursion in .flatten and .isEqual).
| Comment | File | Size | Author |
|---|---|---|---|
| gmv-core-underscore-1.13.8.patch | 113.72 KB | alfaro |
Issue fork drupal-3578028
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
- 3578028-underscore-security-update
changes, plain diff MR !15031
Comments
Comment #2
cilefen commentedComment #4
longwaveMR is the result of:
Comment #6
smustgrave commentedLGTM, since it’s a patch release don’t see anything that broke
Comment #7
quietone commentedComment #12
catchCommitted/pushed to main, 11.x, and 11.3.x, thanks!