8.2

CVE-2026-27601: Underscore.js has unlimited recursion in _.flatten and _.isEqual, potential for DoS attack

Analyzed
AliasesUBUNTU-CVE-2026-27601DEBIAN-CVE-2026-27601CGA-22r3-8x7c-gf93
Published 03-03-2026Last modified 04-03-2026

Vulnerability summary

CVE-2026-27601 is a high (CVSS 8.2) vulnerability in jashkenas underscore. EPSS estimates a 1.06% chance of exploitation in the next 30 days, higher than 64.6% of scored vulnerabilities. 1 public exploit is recorded.

Priority
Prioritisepublic exploit

Public exploit (GitHub, Date unknown)

Source freshness unavailable

How is this decided?
CVSS score
8.2/10
010
High · v4.0 (CVE.org)
EPSS score
1.06%
0%100%
Low · +0.04 pp in 30 days
KEVNot listedNot listed by any tracked catalog.
RansomwareNot flaggedNo ransomware use recorded.
Public exploits1github

Advisory lineage

Upstream 0 · Downstream 3 · Related 4

Timeline

  1. 03-03-2026
    PublishedVulnerability first disclosed.
  2. 04-03-2026
    Last modifiedVulnerability information updated.

Description

Underscore.js is a utility-belt library for JavaScript. Prior to 1.13.8, the _.flatten and _.isEqual functions use recursion without a depth limit. Under very specific conditions, detailed below, an attacker could exploit this in a Denial of Service (DoS) attack by triggering a stack overflow. Untrusted input must be used to create a recursive datastructure, for example using JSON.parse, with no enforced depth limit. The datastructure thus created must be passed to _.flatten or _.isEqual. In the case of _.flatten, the vulnerability can only be exploited if it is possible for a remote client to prepare a datastructure that consists of arrays at all levels AND if no finite depth limit is passed as the second argument to _.flatten. In the case of _.isEqual, the vulnerability can only be exploited if there exists a code path in which two distinct datastructures that were submitted by the same remote client are compared using _.isEqual. For example, if a client submits data that are stored in a database, and the same client can later submit another datastructure that is then compared to the data that were saved in the database previously, OR if a client submits a single request, but its data are parsed twice, creating two non-identical but equivalent datastructures that are then compared. Exceptions originating from the call to _.flatten or _.isEqual, as a result of a stack overflow, are not being caught. This vulnerability is fixed in 1.13.8.

CVSS metrics

10 scores · 7 sources · 2 versions

EPSS trend

Probability

1.06%

Chance of exploitation in the next 30 days

Percentile

65%

Versus all other CVEs

30-day change

Increase +0.04 pp

From 1.03% on 04-10-2026

04-10-202603-11-2026

Known exploited

Compare KEV catalogs
CISA KEV

Not in the CISA KEV catalog.

ENISA CNW

Not in the ENISA CNW catalog.

CIRCL

Not in the CIRCL catalog.

Public exploits

1 found
  • githubUnverified

    Underscore

    Maturity: poc

Weaknesses

CWE · root cause

Affected systems

Version check

Known conditions: network-reachable, no authentication, no user interaction (CVSS vector). Other conditions: not stated in public data.

Chainguard21 products
  • arangodb-3.11< 3.11.14.5-r20
  • arangodb-3.12< 3.12.9.4-r29
  • drupal-11.3< 11.3.13-r3
  • jupyter-base-notebookAll versions (No fix recorded)
  • katib-earlystopping< 0.19.0-r31
Wolfi15 products
  • jupyter-base-notebookAll versions (No fix recorded)
  • katib-earlystopping< 0.19.0-r31
  • katib-suggestion-goptuna-compat< 0.19.0-r40
  • katib-suggestion-hyperband< 0.19.0-r31
  • katib-suggestion-hyperopt< 0.19.0-r31 | < 0.19.0-r40
Opensuse2 products
  • python-ipympl&distro=openSUSE Tumbleweed< 0.9.7-17.1
  • python-nbclassic&distro=openSUSE Tumbleweed< 1.3.3-1.1
Debian1 product
  • underscoreAll versions (No fix recorded) | < 1.13.8~dfsg+~1.13.0-1
Jashkenas1 product
Npm1 product
  • underscore< 1.13.8
Ubuntu1 product
  • ruby-rails-assets-underscoreAll versions (No fix recorded)
Underscorejs1 product

8 vendors · 43 products

References

14 links
Show all 14 references