CVE-2026-27601
Underscore.js has unlimited recursion in _.flatten and _.isEqual, potential for DoS attack
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.2
Underscore.js has unlimited recursion in _.flatten and _.isEqual, potential for DoS attack
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.
- Record
CVE-2026-27601- CVSS 4.0
- 8.2 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - Weakness
- CWE-770
- Updated
- 2026-11-02
EUVDEUVD-2026-9341
8.2
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.
- Record
EUVD-2026-9341- CVSS 4.0
- 8.2 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-qpx9-hpmf-5gmw
8.2
Underscore has unlimited recursion in _.flatten and _.isEqual, potential for DoS attack
Impact
In simple words, some programs that use _.flatten or _.isEqual could be made to crash. Someone who wants to do harm may be able to do this on purpose. This can only be done if the program has special properties. It only works in Underscore versions up to 1.13.7. A more detailed explanation follows.
In affected versions of Underscore, 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.
A proof of concept (PoC) for this type of attack with _.isEqual:
const _ = require('underscore');
// build JSON string for nested object ~4500 levels deep
// (for this to be an attack, the JSON would have to come from
// a request or other untrusted input)
let json = '';
for (let i = 0; i < 4500; i++) json += '{"n":';
json += '"x"';
for (let i = 0; i < 4500; i++) json += '}';
// construct two distinct objects with equal shape from the above JSON
const a = JSON.parse(json);
const b = JSON.parse(json);
_.isEqual(a, b); // RangeError: Maximum call stack size exceeded
A proof of concept (PoC) for this type of attack with _.flatten:
const _ = require('underscore');
// build nested array ~4500 levels deep
// (like with _.isEqual, this nested array would have to be sourced
// from an untrusted external source for it to be an attack)
let nested = [];
for (let i = 0; i < 4500; i++) nested = [nested];
_.flatten(nested); // RangeError: Maximum call stack size exceeded
An application that crashes because of this can be restarted, so the bug is most relevant to applications for which continued operation is important, such as server applications. Furthermore, an application is only vulnerable to this type of attack if ALL of the following conditions are met:
- 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
_.flattenor_.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
_.flattenor_.isEqual, as a result of a stack overflow, are not being caught.
All versions of Underscore up to and including 1.13.7 are affected by this weakness.
Patches
The problem has been patched in version 1.13.8. Upgrading to 1.13.8 or later completely prevents exploitation.
Note: historically, there have been breaking changes in minor releases of Underscore, especially between versions 1.6 and 1.9. However, upgrading from version 1.9 or later to any later 1.x version should be feasible with little or no effort for all users.
Workarounds
A workaround that works for both functions is to enforce a depth limit on the datastructure that is created from untrusted input. A limit of 1000 levels should prevent attacks from being successful on most systems. In systems with highly constrained hardware, we recommend lower limits, for example 100 levels.
Another possible workaround that only works for _.flatten, is to pass a second argument that limits the flattening depth to 1000 or less.
References
-…
- Record
GHSA-qpx9-hpmf-5gmw- CVSS 4.0
- 8.2 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-674, CWE-770
- Updated
- 2026-11-02
NVD
8.2
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.
- Record
CVE-2026-27601- CVSS 4.0
- 8.2 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-770
- Updated
- 2026-11-02
OSV
8.2
Underscore.js has unlimited recursion in _.flatten and _.isEqual, potential for DoS attack
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.
- Record
CVE-2026-27601- CVSS 4.0
- 8.2 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - Weakness
- CWE-770
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-27601
5.9
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.
- Record
DEBIAN-CVE-2026-27601- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
Show 27 moreShow less
OSVGHSA-qpx9-hpmf-5gmw
8.2
Underscore has unlimited recursion in _.flatten and _.isEqual, potential for DoS attack
Impact
In simple words, some programs that use _.flatten or _.isEqual could be made to crash. Someone who wants to do harm may be able to do this on purpose. This can only be done if the program has special properties. It only works in Underscore versions up to 1.13.7. A more detailed explanation follows.
In affected versions of Underscore, 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.
A proof of concept (PoC) for this type of attack with _.isEqual:
const _ = require('underscore');
// build JSON string for nested object ~4500 levels deep
// (for this to be an attack, the JSON would have to come from
// a request or other untrusted input)
let json = '';
for (let i = 0; i < 4500; i++) json += '{"n":';
json += '"x"';
for (let i = 0; i < 4500; i++) json += '}';
// construct two distinct objects with equal shape from the above JSON
const a = JSON.parse(json);
const b = JSON.parse(json);
_.isEqual(a, b); // RangeError: Maximum call stack size exceeded
A proof of concept (PoC) for this type of attack with _.flatten:
const _ = require('underscore');
// build nested array ~4500 levels deep
// (like with _.isEqual, this nested array would have to be sourced
// from an untrusted external source for it to be an attack)
let nested = [];
for (let i = 0; i < 4500; i++) nested = [nested];
_.flatten(nested); // RangeError: Maximum call stack size exceeded
An application that crashes because of this can be restarted, so the bug is most relevant to applications for which continued operation is important, such as server applications. Furthermore, an application is only vulnerable to this type of attack if ALL of the following conditions are met:
- 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
_.flattenor_.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
_.flattenor_.isEqual, as a result of a stack overflow, are not being caught.
All versions of Underscore up to and including 1.13.7 are affected by this weakness.
Patches
The problem has been patched in version 1.13.8. Upgrading to 1.13.8 or later completely prevents exploitation.
Note: historically, there have been breaking changes in minor releases of Underscore, especially between versions 1.6 and 1.9. However, upgrading from version 1.9 or later to any later 1.x version should be feasible with little or no effort for all users.
Workarounds
A workaround that works for both functions is to enforce a depth limit on the datastructure that is created from untrusted input. A limit of 1000 levels should prevent attacks from being successful on most systems. In systems with highly constrained hardware, we recommend lower limits, for example 100 levels.
Another possible workaround that only works for _.flatten, is to pass a second argument that limits the flattening depth to 1000 or less.
References
-…
- Record
GHSA-qpx9-hpmf-5gmw- CVSS 4.0
- 8.2 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-674, CWE-770
- Updated
- 2026-11-02
OSVOESA-2026-1578
8.2
nodejs-underscore security update
Underscore.js is a utility-belt library for JavaScript that provides support for the usual functional suspects (each, map, reduce, filter...) without extending any core JavaScript objects.
Security Fix(es):
Underscore.js is a utility-belt library for JavaScript. Prior to version 1.13.8, the _.flatten and _.isEqual functions use recursion without a depth limit. Under very specific conditions, an attacker could exploit this to cause a Denial of Service (DoS) attack by triggering a stack overflow. Exploitation requires all of the following: untrusted input must be used to create a deeply recursive data structure (e.g., via JSON.parse with no enforced depth limit), and this structure must be passed to _.flatten or _.isEqual. For _.flatten, the attacker must be able to prepare a data structure consisting solely of arrays at all levels, and no finite depth limit must be passed as the second argument to _.flatten. For _.isEqual, there must exist a code path where two distinct but structurally equivalent data structures, submitted by the same remote client, are compared using _.isEqual. Additionally, exceptions resulting from the stack overflow must not be caught. This vulnerability is fixed in version 1.13.8.(CVE-2026-27601)
- Record
OESA-2026-1578- CVSS 4.0
- 8.2 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
OSVOESA-2026-1579
8.2
nodejs-underscore security update
Underscore.js is a utility-belt library for JavaScript that provides support for the usual functional suspects (each, map, reduce, filter...) without extending any core JavaScript objects.
Security Fix(es):
Underscore.js is a utility-belt library for JavaScript. Prior to version 1.13.8, the _.flatten and _.isEqual functions use recursion without a depth limit. Under very specific conditions, an attacker could exploit this to cause a Denial of Service (DoS) attack by triggering a stack overflow. Exploitation requires all of the following: untrusted input must be used to create a deeply recursive data structure (e.g., via JSON.parse with no enforced depth limit), and this structure must be passed to _.flatten or _.isEqual. For _.flatten, the attacker must be able to prepare a data structure consisting solely of arrays at all levels, and no finite depth limit must be passed as the second argument to _.flatten. For _.isEqual, there must exist a code path where two distinct but structurally equivalent data structures, submitted by the same remote client, are compared using _.isEqual. Additionally, exceptions resulting from the stack overflow must not be caught. This vulnerability is fixed in version 1.13.8.(CVE-2026-27601)
- Record
OESA-2026-1579- CVSS 4.0
- 8.2 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
OSVOESA-2026-1580
8.2
nodejs-underscore security update
Underscore.js is a utility-belt library for JavaScript that provides support for the usual functional suspects (each, map, reduce, filter...) without extending any core JavaScript objects.
Security Fix(es):
Underscore.js is a utility-belt library for JavaScript. Prior to version 1.13.8, the _.flatten and _.isEqual functions use recursion without a depth limit. Under very specific conditions, an attacker could exploit this to cause a Denial of Service (DoS) attack by triggering a stack overflow. Exploitation requires all of the following: untrusted input must be used to create a deeply recursive data structure (e.g., via JSON.parse with no enforced depth limit), and this structure must be passed to _.flatten or _.isEqual. For _.flatten, the attacker must be able to prepare a data structure consisting solely of arrays at all levels, and no finite depth limit must be passed as the second argument to _.flatten. For _.isEqual, there must exist a code path where two distinct but structurally equivalent data structures, submitted by the same remote client, are compared using _.isEqual. Additionally, exceptions resulting from the stack overflow must not be caught. This vulnerability is fixed in version 1.13.8.(CVE-2026-27601)
- Record
OESA-2026-1580- CVSS 4.0
- 8.2 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
OSVOESA-2026-1581
8.2
nodejs-underscore security update
Underscore.js is a utility-belt library for JavaScript that provides support for the usual functional suspects (each, map, reduce, filter...) without extending any core JavaScript objects.
Security Fix(es):
Underscore.js is a utility-belt library for JavaScript. Prior to version 1.13.8, the _.flatten and _.isEqual functions use recursion without a depth limit. Under very specific conditions, an attacker could exploit this to cause a Denial of Service (DoS) attack by triggering a stack overflow. Exploitation requires all of the following: untrusted input must be used to create a deeply recursive data structure (e.g., via JSON.parse with no enforced depth limit), and this structure must be passed to _.flatten or _.isEqual. For _.flatten, the attacker must be able to prepare a data structure consisting solely of arrays at all levels, and no finite depth limit must be passed as the second argument to _.flatten. For _.isEqual, there must exist a code path where two distinct but structurally equivalent data structures, submitted by the same remote client, are compared using _.isEqual. Additionally, exceptions resulting from the stack overflow must not be caught. This vulnerability is fixed in version 1.13.8.(CVE-2026-27601)
- Record
OESA-2026-1581- CVSS 4.0
- 8.2 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
OSVROOT-APP-NPM-CVE-2026-27601
5.9
CVE-2026-27601 in underscore - Patched by Root
Root has patched CVE-2026-27601 in the underscore package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-CVE-2026-27601- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-06
OSVROOT-OS-DEBIAN-12-CVE-2026-27601
5.9
CVE-2026-27601 in underscore - Patched by Root
Root has patched CVE-2026-27601 in the underscore package for Root:Debian:12. Multiple fixed versions available.
- Record
ROOT-OS-DEBIAN-12-CVE-2026-27601- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-27601
8.2
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.
- Record
UBUNTU-CVE-2026-27601- CVSS 4.0
- 8.2 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVAZL-79313 No score
CVE-2026-27601 affecting package boost 1.83.0-2
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.
- Record
AZL-79313- Updated
- 2026-11-02
OSVAZL-79320 No score
CVE-2026-27601 affecting package cyrus-sasl 2.1.28-4
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.
- Record
AZL-79320- Updated
- 2026-11-02
OSVAZL-79323 No score
CVE-2026-27601 affecting package cyrus-sasl-bootstrap 2.1.28-4
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.
- Record
AZL-79323- Updated
- 2026-11-02
OSVAZL-79340 No score
CVE-2026-27601 affecting package cyrus-sasl 2.1.28-8
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.
- Record
AZL-79340- Updated
- 2026-11-02
OSVAZL-79343 No score
CVE-2026-27601 affecting package cyrus-sasl-bootstrap 2.1.28-8
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.
- Record
AZL-79343- Updated
- 2026-11-02
OSVAZL-79397 No score
CVE-2026-27601 affecting package krb5 1.21.3-3
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.
- Record
AZL-79397- Updated
- 2026-11-02
OSVAZL-79401 No score
CVE-2026-27601 affecting package python-sphinx 4.4.0-3
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.
- Record
AZL-79401- Updated
- 2026-11-02
OSVAZL-79404 No score
CVE-2026-27601 affecting package python-sqlalchemy 1.4.32-2
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.
- Record
AZL-79404- Updated
- 2026-11-02
OSVAZL-79427 No score
CVE-2026-27601 affecting package numpy 1.26.3-4
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.
- Record
AZL-79427- Updated
- 2026-11-02
OSVAZL-79434 No score
CVE-2026-27601 affecting package rsyslog 8.2204.1-4
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.
- Record
AZL-79434- Updated
- 2026-11-02
OSVAZL-79463 No score
CVE-2026-27601 affecting package rsyslog 8.2308.0-5
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.
- Record
AZL-79463- Updated
- 2026-11-02
OSVCLSA-2026-1775003192 No score
TuxCare security update for underscore (2 CVEs)
TuxCare rebuilt underscore to address 2 CVEs. Fixed in 1.7.0-tuxcare.1.
- Record
CLSA-2026-1775003192- Updated
- 2026-11-02
OSVCLSA-2026-1792767425 No score
TuxCare security update for underscore (2 CVEs)
TuxCare rebuilt underscore to address 2 CVEs. Fixed in 1.9.1-tuxcare.1.
- Record
CLSA-2026-1792767425- Updated
- 2026-11-02
OSVCLSA-2026-1792767555 No score
TuxCare security update for underscore (1 CVE)
TuxCare rebuilt underscore to address 1 CVE. Fixed in 1.13.6-tuxcare.1.
- Record
CLSA-2026-1792767555- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:10424-1 No score
jupyter-bqplot-jupyterlab-0.5.46-14.1 on GA media
These are all security issues fixed in the jupyter-bqplot-jupyterlab-0.5.46-14.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:10424-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:10427-1 No score
jupyter-matplotlib-0.11.7-17.1 on GA media
These are all security issues fixed in the jupyter-matplotlib-0.11.7-17.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:10427-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:10440-1 No score
jupyter-nbclassic-1.3.3-1.1 on GA media
These are all security issues fixed in the jupyter-nbclassic-1.3.3-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:10440-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:12070-1 No score
velociraptor-0.76.7.0.git145.b60ef1146-1.1 on GA media
These are all security issues fixed in the velociraptor-0.76.7.0.git145.b60ef1146-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:12070-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:21448-1 No score
Security update for agama-web-ui
This update for agama-web-ui fixes the following issues:
- CVE-2025-7783: form-data: unsafe
Math.random()function is used to select a boundary value for multipart form-encoded data (bsc#1246822). - CVE-2026-12143: form-data: CRLF injection via unescaped multipart field names and filenames (bsc#1272310).
- CVE-2026-13149: brace-expansion:
expand()function exhibits exponential-time complexity when processing non-expanding{}brace groups (bsc#1269927). - CVE-2026-13311: shell-quote: quadratic complexity in
parse()function when processing specially crafted strings (bsc#1269359). - CVE-2026-13676: fast-uri: host-based policy bypass due to failure to canonicalize Unicode/IDN hostnames for HTTP-family URLs (bsc#1269595).
- CVE-2026-27601: underscore: DoS via stack overflow due to missing depth limits in
_.flattenand_.isEqualfunctions (bsc#1259169). - CVE-2026-40181: react-router: open redirect to an external domain due to path values starting with
//being reinterpreted as protocol-relative URLs (bsc#1272311). - CVE-2026-49356: @babel/core: arbitrary file read via
sourceMappingURLcomment (bsc#1272317). - CVE-2026-53550: js-yaml: quadratic complexity in merge-key processing when processing a crafted YAML document (bsc#1268851).
- CVE-2026-53632: launch-editor: NTLMv2 hash disclosure via UNC path handling on Windows (bsc#1272319).
- CVE-2026-54466: websocket-driver: message corruption via abuse of protocol length headers (bsc#1272312).
- CVE-2026-54490: websocket-driver: resource limit bypass via message compression (bsc#1272313).
- CVE-2026-55602: http-proxy-middleware: Host-header-driven backend routing bypass via
routerhost+path substring matching (bsc#1272318).
- Record
openSUSE-SU-2026:21448-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
underscorenpm |
through 1.13.7 | 1.13.8 |
boostAzure Linux:3 |
through 1.83.0-2 | None known |
cyrus-saslAzure Linux:2 |
through 2.1.28-4 | None known |
cyrus-sasl-bootstrapAzure Linux:2 |
through 2.1.28-4 | None known |
cyrus-saslAzure Linux:3 |
through 2.1.28-8 | None known |
cyrus-sasl-bootstrapAzure Linux:3 |
through 2.1.28-8 | None known |
krb5Azure Linux:3 |
through 1.21.3-3 | None known |
python-sphinxAzure Linux:2 |
through 4.4.0-3 | None known |
python-sqlalchemyAzure Linux:2 |
through 1.4.32-2 | None known |
numpyAzure Linux:3 |
through 1.26.3-4 | None known |
Show 26 moreShow less
| Package | Affected | Fixed |
|---|---|---|
rsyslogAzure Linux:2 |
through 8.2204.1-4 | None known |
rsyslogAzure Linux:3 |
through 8.2308.0-5 | None known |
underscoreTuxCare:npm From an advisory covering 2 CVEs |
1.7.0-tuxcare.0 up to 1.7.0-tuxcare.1, plus listed versions 1.7.0 |
1.7.0-tuxcare.1 |
underscoreTuxCare:npm From an advisory covering 2 CVEs |
1.9.1-tuxcare.0 up to 1.9.1-tuxcare.1, plus listed versions 1.9.1 |
1.9.1-tuxcare.1 |
underscoreTuxCare:npm |
1.13.6-tuxcare.0 up to 1.13.6-tuxcare.1, plus listed versions 1.13.6 |
1.13.6-tuxcare.1 |
underscoreDebian:12 |
All versions, plus listed versions 1.13.4~dfsg+~1.11.4-31.13.7~dfsg+~1.13.0-11.13.7~dfsg+~1.13.0-21.13.7~dfsg+~1.13.0-31.13.7~dfsg+~1.13.0-41.13.7~dfsg+~1.13.0-51.13.7~dfsg+~1.13.0-61.13.8~dfsg+~1.13.0-1 |
None known |
underscoreDebian:13 |
All versions, plus listed versions 1.13.4~dfsg+~1.11.4-31.13.7~dfsg+~1.13.0-11.13.7~dfsg+~1.13.0-21.13.7~dfsg+~1.13.0-31.13.7~dfsg+~1.13.0-41.13.7~dfsg+~1.13.0-51.13.7~dfsg+~1.13.0-61.13.8~dfsg+~1.13.0-1 |
None known |
underscoreDebian:14 |
before 1.13.8~dfsg+~1.13.0-1, plus listed versions 1.13.4~dfsg+~1.11.4-31.13.7~dfsg+~1.13.0-11.13.7~dfsg+~1.13.0-21.13.7~dfsg+~1.13.0-31.13.7~dfsg+~1.13.0-41.13.7~dfsg+~1.13.0-51.13.7~dfsg+~1.13.0-6 |
1.13.8~dfsg+~1.13.0-1 |
underscorenpm |
before 1.13.8 | 1.13.8 |
nodejs-underscoreopenEuler:24.03-LTS-SP2 |
before 1.13.8-1.oe2403sp2 | 1.13.8-1.oe2403sp2 |
nodejs-underscoreopenEuler:24.03-LTS-SP3 |
before 1.13.8-1.oe2403sp3 | 1.13.8-1.oe2403sp3 |
nodejs-underscoreopenEuler:24.03-LTS |
before 1.13.8-1.oe2403 | 1.13.8-1.oe2403 |
nodejs-underscoreopenEuler:24.03-LTS-SP1 |
before 1.13.8-1.oe2403sp1 | 1.13.8-1.oe2403sp1 |
underscoreRoot:npm |
before 1.13.1-aikido.1 | 1.13.1-aikido.11.13.6-aikido.11.12.1-aikido.11.2.1-aikido.11.13.7-aikido.1 |
@rootio/underscoreRoot:npm |
before 1.13.1-root.io.1 | 1.13.1-root.io.11.13.6-root.io.11.12.1-root.io.11.2.1-root.io.11.13.7-root.io.1 |
underscoreRoot:Debian:12 |
before 1.13.4~dfsg+~1.11.4-3.aikido.3 | 1.13.4~dfsg+~1.11.4-3.aikido.31.13.4~dfsg+~1.11.4-3.root.io.11.13.4~dfsg+~1.11.4-3.root.io.2 |
rootio-underscoreRoot:Debian:12 |
before 1.13.4~dfsg+~1.11.4-3.aikido.3 | 1.13.4~dfsg+~1.11.4-3.aikido.31.13.4~dfsg+~1.11.4-3.root.io.11.13.4~dfsg+~1.11.4-3.root.io.2 |
ruby-rails-assets-underscoreUbuntu:18.04:LTS |
All versions, plus listed versions 1.8.3+dfsg-1 |
None known |
ruby-rails-assets-underscoreUbuntu:20.04:LTS |
All versions, plus listed versions 1.8.3+dfsg-1 |
None known |
ruby-rails-assets-underscoreUbuntu:22.04:LTS |
All versions, plus listed versions 1.8.3+dfsg-4 |
None known |
ruby-rails-assets-underscoreUbuntu:24.04:LTS |
All versions, plus listed versions 1.8.3+dfsg-41.8.3+dfsg-5 |
None known |
python-bqplotopenSUSE:Tumbleweed From an advisory covering 2 CVEs |
before 0.12.45-14.1 | 0.12.45-14.1 |
python-ipymplopenSUSE:Tumbleweed |
before 0.9.7-17.1 | 0.9.7-17.1 |
python-nbclassicopenSUSE:Tumbleweed |
before 1.3.3-1.1 | 1.3.3-1.1 |
velociraptoropenSUSE:Tumbleweed From an advisory covering 40 CVEs |
before 0.76.7.0.git145.b60ef1146-1.1 | 0.76.7.0.git145.b60ef1146-1.1 |
agama-web-uiopenSUSE:Leap 16.0 From an advisory covering 13 CVEs |
before 17+673.b97ba64d6-160000.12.1 | 17+673.b97ba64d6-160000.12.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | OSV | |
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-27601 is a high vulnerability (CVSS 8.2) in Jashkenas Underscore, published March 3, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.06%, the 64th percentile. Fixed in underscore 1.13.8.
References
github.com/jashkenas/underscore/security/advisories/GHSA-qpx9-hpmf-5gmw
github.com/jashkenas/underscore/commit/411e222eb0ca5d570cc4f6315c02c05b830ed2b4
github.com/jashkenas/underscore/commit/a6e23ae9647461ec33ad9f92a2ecfc220eea0a84
github.com/jashkenas/underscore/issues/3011
underscorejs.org
nvd.nist.gov/vuln/detail/CVE-2026-27601
Show 73 moreShow less
github.com/advisories/GHSA-qpx9-hpmf-5gmw
github.com/CVEProject/cvelistV5/tree/main/cves/2026/27xxx/CVE-2026-27601.json
security-tracker.debian.org/tracker/CVE-2026-27601
github.com/jashkenas/underscore
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-1578
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-1579
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-1580
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-1581
ubuntu.com/security/CVE-2026-27601
cve.org/CVERecord?id=CVE-2026-27601
suse.com/security/cve/CVE-2026-25547
suse.com/security/cve/CVE-2026-27601
suse.com/security/cve/CVE-2025-0914
suse.com/security/cve/CVE-2026-12143
suse.com/security/cve/CVE-2026-14257
suse.com/security/cve/CVE-2026-17535
suse.com/security/cve/CVE-2026-18348
suse.com/security/cve/CVE-2026-18636
suse.com/security/cve/CVE-2026-18638
suse.com/security/cve/CVE-2026-18639
suse.com/security/cve/CVE-2026-18860
suse.com/security/cve/CVE-2026-29074
suse.com/security/cve/CVE-2026-41650
suse.com/security/cve/CVE-2026-45623
suse.com/security/cve/CVE-2026-49356
suse.com/security/cve/CVE-2026-5329
suse.com/security/cve/CVE-2026-53550
suse.com/security/cve/CVE-2026-55602
suse.com/security/cve/CVE-2026-56852
suse.com/security/cve/CVE-2026-59869
suse.com/security/cve/CVE-2026-6290
suse.com/security/cve/CVE-2026-64951
suse.com/security/cve/CVE-2026-64952
suse.com/security/cve/CVE-2026-64954
suse.com/security/cve/CVE-2026-65903
suse.com/security/cve/CVE-2026-65912
suse.com/security/cve/CVE-2026-65913
suse.com/security/cve/CVE-2026-65914
suse.com/security/cve/CVE-2026-67314
suse.com/security/cve/CVE-2026-67320
suse.com/security/cve/CVE-2026-6863
suse.com/security/cve/CVE-2026-69152
suse.com/security/cve/CVE-2026-69153
suse.com/security/cve/CVE-2026-6948
suse.com/security/cve/CVE-2026-73086
suse.com/security/cve/CVE-2026-73646
suse.com/security/cve/CVE-2026-73650
suse.com/security/cve/CVE-2026-7572
suse.com/security/cve/CVE-2026-7573
suse.com/security/cve/CVE-2026-84369
suse.com/security/cve/CVE-2026-84370
bugzilla.suse.com/1246822
bugzilla.suse.com/1259169
bugzilla.suse.com/1268851
bugzilla.suse.com/1269359
bugzilla.suse.com/1269514
bugzilla.suse.com/1269595
bugzilla.suse.com/1269927
bugzilla.suse.com/1272310
bugzilla.suse.com/1272311
bugzilla.suse.com/1272312
bugzilla.suse.com/1272313
bugzilla.suse.com/1272317
bugzilla.suse.com/1272318
bugzilla.suse.com/1272319
suse.com/security/cve/CVE-2025-7783
suse.com/security/cve/CVE-2026-13149
suse.com/security/cve/CVE-2026-13311
suse.com/security/cve/CVE-2026-13676
suse.com/security/cve/CVE-2026-40181
suse.com/security/cve/CVE-2026-53632
suse.com/security/cve/CVE-2026-54466
suse.com/security/cve/CVE-2026-54490
Left out here: the rest of 2 source descriptions. The JSON record has them.