Every CVE Search/ Get API key

CVE-2026-59879

Immutable.js `List` 32-bit trie overflow → unrecoverable DoS

8.7 HighFix available

Immutable.js provides many Persistent Immutable data structures. Prior to 4.3.9 and 5.1.8, List#set, List#setSize, List#setIn, List#updateIn, and the functional set, setIn, and updateIn mishandle an index or size in the range 2 ** 30 to 2 ** 31 in setListBounds in src/List.js, causing an empty List to enter an uncatchable infinite loop, a populated List to allocate without bound until process abort, or setSize to silently wrap large values. This issue is fixed in versions 4.3.9 and 5.1.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

0.57%Up 0.3 points since Jul 9, 2026
90%50%10%1%

What each source reports

CVE List Score used 8.7

Immutable.js `List` 32-bit trie overflow → unrecoverable DoS

Immutable.js provides many Persistent Immutable data structures. Prior to 4.3.9 and 5.1.8, List#set, List#setSize, List#setIn, List#updateIn, and the functional set, setIn, and updateIn mishandle an index or size in the range 2 ** 30 to 2 ** 31 in setListBounds in src/List.js, causing an empty List to enter an uncatchable infinite loop, a populated List to allocate without bound until process abort, or setSize to silently wrap large values. This issue is fixed in versions 4.3.9 and 5.1.8.

Record
CVE-2026-59879
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-190, CWE-400, CWE-835, CWE-1284
Updated
2026-11-02
EUVDEUVD-2026-42318 8.7

Immutable.js provides many Persistent Immutable data structures. Prior to 4.3.9 and 5.1.8, List#set, List#setSize, List#setIn, List#updateIn, and the functional set, setIn, and updateIn mishandle an index or size in the range 2 ** 30 to 2 ** 31 in setListBounds in src/List.js, causing an empty List to enter an uncatchable infinite loop, a populated List to allocate without bound until process abort, or setSize to silently wrap large values. This issue is fixed in versions 4.3.9 and 5.1.8.

Record
EUVD-2026-42318
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-v56q-mh7h-f735 8.7

Immutable.js `List` 32-bit trie overflow → unrecoverable DoS

Summary

List#set, List#setSize, List#setIn, List#updateIn (and the functional set / setIn / updateIn) mishandle an index or size in the range [2 ** 30, 2 ** 31):

  • On an empty List the operation enters an uncatchable infinite loop (a tight CPU spin; a surrounding try/catch never regains control). Only killing the worker recovers it.
  • On a populated List (≥ 32 elements — i.e. any array of ≥ 32 items turned into a List by fromJS) the loop allocates without bound → heap exhaustion → the process aborts (SIGABRT, exit 134, or kernel OOM-kill 137). A real crash, not a recoverable error.

The index may be a numeric string, so it can come straight from a request body, URL, or key-path. A single small unauthenticated request is enough.

There is also a companion silent data-corruption issue in setSize:

List([1, 2, 3]).setSize(2 ** 31); // before fix => size 0  (silently cleared)
List([1, 2, 3]).setSize(2 ** 32 + 5); // before fix => size 5  (huge value wraps to 5)

Impact

Availability only. A reachable configuration is any endpoint that routes untrusted input into a List index or a setIn/updateIn key-path — which the extremely common state = fromJS(body); state.setIn(userPath, value) pattern does (config stores, document/collection editors, redux-immutable reducers, JSON-Patch endpoints, etc.).

No confidentiality or integrity impact, no RCE. The companion setSize bug can silently corrupt application state (wrong size) without crashing.

Reproduction (immutable 5.1.7)

import { fromJS, List } from 'immutable';

// 1) Populated List: OOM -> process abort (SIGABRT, exit 134) within ~2s
fromJS({ items: new Array(64).fill(0) }).setIn(['items', '1073741824'], 'x');

// 2) Empty List: hangs forever, uncatchable
List().set(2 ** 30, 'x');

// 3) Silent truncation
List([1, 2, 3]).setSize(2 ** 31); // => size 0
List([1, 2, 3]).setSize(2 ** 32 + 5); // => size 5

A remote 43-byte HTTP request ({"path":["items","1073741824"],"value":"x"}) is sufficient to abort a worker that applies it via state = state.setIn(path, value).

Any index in [2 ** 30, 2 ** 31) works (1073741824, 2000000000, …). An index in [2 ** 31, 2 ** 32) does not crash — it silently wraps (clearing the List) via the same root cause.

Root cause

List stores its values in a 32-wide trie (SHIFT = 5, so each level addresses 5 more bits) and uses signed 32-bit bitwise arithmetic throughout setListBounds() (src/List.js):

  1. Infinite loop (the hang / OOM). The level-raising loop
while (newTailOffset >= 1 << (newLevel + SHIFT)) {
  newRoot = new VNode(
    newRoot && newRoot.array.length ? [newRoot] : [],
    owner
  );
  newLevel += SHIFT;
}

relies on 1 << (newLevel + SHIFT). A JavaScript shift count is taken mod 32, so once newLevel + SHIFT reaches 31 the term goes negative (1 << 31 === -2147483648) and at 32 wraps to 1 (1 << 35 === 8). The comparison then stays true forever and the loop never terminates. On a populated List, each iteration retains a new VNode ([newRoot]), so the heap fills and V8 aborts; on an empty List it spins on CPU without allocating.

  1. Silent wraparound (the setSize corruption). The begin |= 0 / end |= 0 coercion (ToInt32) silently wraps large finite values ((2 ** 31) | 0 === -2147483648, (2 ** 32 + 5) | 0 === 5), producing a wrong resulting size instead of an error.

The threshold is 2 ** 30: that is the largest size for which 1 << (newLevel + SHIFT) stays a valid positive 32-bit integer throughout the loops (newLevel + SHIFT stays ≤ 30).

Remediation

The fix is contained to setListBounds() in src/List.js:

  1. Validate up front, before the lossy | 0 coercion. Compute the intended origin and capacity in full precision and throw a clear, catchable RangeError when they exceed the addressable range (MAX_LIST_SIZE = 2 ** 30).…
Record
GHSA-v56q-mh7h-f735
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-190, CWE-400, CWE-835, CWE-1284
Updated
2026-11-02
NVD 8.7

Immutable.js provides many Persistent Immutable data structures. Prior to 4.3.9 and 5.1.8, List#set, List#setSize, List#setIn, List#updateIn, and the functional set, setIn, and updateIn mishandle an index or size in the range 2 ** 30 to 2 ** 31 in setListBounds in src/List.js, causing an empty List to enter an uncatchable infinite loop, a populated List to allocate without bound until process abort, or setSize to silently wrap large values. This issue is fixed in versions 4.3.9 and 5.1.8.

Record
CVE-2026-59879
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/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
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-190, CWE-400, CWE-835, CWE-1284
Updated
2026-11-02
OSV 8.7

Immutable.js `List` 32-bit trie overflow → unrecoverable DoS

Immutable.js provides many Persistent Immutable data structures. Prior to 4.3.9 and 5.1.8, List#set, List#setSize, List#setIn, List#updateIn, and the functional set, setIn, and updateIn mishandle an index or size in the range 2 ** 30 to 2 ** 31 in setListBounds in src/List.js, causing an empty List to enter an uncatchable infinite loop, a populated List to allocate without bound until process abort, or setSize to silently wrap large values. This issue is fixed in versions 4.3.9 and 5.1.8.

Record
CVE-2026-59879
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-1284, CWE-190, CWE-400, CWE-835
Updated
2026-11-02
OSVDEBIAN-CVE-2026-59879 7.5

Immutable.js provides many Persistent Immutable data structures. Prior to 4.3.9 and 5.1.8, List#set, List#setSize, List#setIn, List#updateIn, and the functional set, setIn, and updateIn mishandle an index or size in the range 2 ** 30 to 2 ** 31 in setListBounds in src/List.js, causing an empty List to enter an uncatchable infinite loop, a populated List to allocate without bound until process abort, or setSize to silently wrap large values. This issue is fixed in versions 4.3.9 and 5.1.8.

Record
DEBIAN-CVE-2026-59879
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
Show 12 moreShow less
OSVGHSA-v56q-mh7h-f735 8.7

Immutable.js `List` 32-bit trie overflow → unrecoverable DoS

Summary

List#set, List#setSize, List#setIn, List#updateIn (and the functional set / setIn / updateIn) mishandle an index or size in the range [2 ** 30, 2 ** 31):

  • On an empty List the operation enters an uncatchable infinite loop (a tight CPU spin; a surrounding try/catch never regains control). Only killing the worker recovers it.
  • On a populated List (≥ 32 elements — i.e. any array of ≥ 32 items turned into a List by fromJS) the loop allocates without bound → heap exhaustion → the process aborts (SIGABRT, exit 134, or kernel OOM-kill 137). A real crash, not a recoverable error.

The index may be a numeric string, so it can come straight from a request body, URL, or key-path. A single small unauthenticated request is enough.

There is also a companion silent data-corruption issue in setSize:

List([1, 2, 3]).setSize(2 ** 31); // before fix => size 0  (silently cleared)
List([1, 2, 3]).setSize(2 ** 32 + 5); // before fix => size 5  (huge value wraps to 5)

Impact

Availability only. A reachable configuration is any endpoint that routes untrusted input into a List index or a setIn/updateIn key-path — which the extremely common state = fromJS(body); state.setIn(userPath, value) pattern does (config stores, document/collection editors, redux-immutable reducers, JSON-Patch endpoints, etc.).

No confidentiality or integrity impact, no RCE. The companion setSize bug can silently corrupt application state (wrong size) without crashing.

Reproduction (immutable 5.1.7)

import { fromJS, List } from 'immutable';

// 1) Populated List: OOM -> process abort (SIGABRT, exit 134) within ~2s
fromJS({ items: new Array(64).fill(0) }).setIn(['items', '1073741824'], 'x');

// 2) Empty List: hangs forever, uncatchable
List().set(2 ** 30, 'x');

// 3) Silent truncation
List([1, 2, 3]).setSize(2 ** 31); // => size 0
List([1, 2, 3]).setSize(2 ** 32 + 5); // => size 5

A remote 43-byte HTTP request ({"path":["items","1073741824"],"value":"x"}) is sufficient to abort a worker that applies it via state = state.setIn(path, value).

Any index in [2 ** 30, 2 ** 31) works (1073741824, 2000000000, …). An index in [2 ** 31, 2 ** 32) does not crash — it silently wraps (clearing the List) via the same root cause.

Root cause

List stores its values in a 32-wide trie (SHIFT = 5, so each level addresses 5 more bits) and uses signed 32-bit bitwise arithmetic throughout setListBounds() (src/List.js):

  1. Infinite loop (the hang / OOM). The level-raising loop
while (newTailOffset >= 1 << (newLevel + SHIFT)) {
  newRoot = new VNode(
    newRoot && newRoot.array.length ? [newRoot] : [],
    owner
  );
  newLevel += SHIFT;
}

relies on 1 << (newLevel + SHIFT). A JavaScript shift count is taken mod 32, so once newLevel + SHIFT reaches 31 the term goes negative (1 << 31 === -2147483648) and at 32 wraps to 1 (1 << 35 === 8). The comparison then stays true forever and the loop never terminates. On a populated List, each iteration retains a new VNode ([newRoot]), so the heap fills and V8 aborts; on an empty List it spins on CPU without allocating.

  1. Silent wraparound (the setSize corruption). The begin |= 0 / end |= 0 coercion (ToInt32) silently wraps large finite values ((2 ** 31) | 0 === -2147483648, (2 ** 32 + 5) | 0 === 5), producing a wrong resulting size instead of an error.

The threshold is 2 ** 30: that is the largest size for which 1 << (newLevel + SHIFT) stays a valid positive 32-bit integer throughout the loops (newLevel + SHIFT stays ≤ 30).

Remediation

The fix is contained to setListBounds() in src/List.js:

  1. Validate up front, before the lossy | 0 coercion. Compute the intended origin and capacity in full precision and throw a clear, catchable RangeError when they exceed the addressable range (MAX_LIST_SIZE = 2 ** 30).…
Record
GHSA-v56q-mh7h-f735
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-1284, CWE-190, CWE-400, CWE-835
Updated
2026-11-02
OSVRHSA-2026:74503 9.1

Red Hat Security Advisory: Satellite 6.19.5 Async Update

Record
RHSA-2026:74503
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:L
Updated
2026-11-02
OSVUBUNTU-CVE-2026-59879 8.7

Immutable.js provides many Persistent Immutable data structures. Prior to 4.3.9 and 5.1.8, List#set, List#setSize, List#setIn, List#updateIn, and the functional set, setIn, and updateIn mishandle an index or size in the range 2 ** 30 to 2 ** 31 in setListBounds in src/List.js, causing an empty List to enter an uncatchable infinite loop, a populated List to allocate without bound until process abort, or setSize to silently wrap large values. This issue is fixed in versions 4.3.9 and 5.1.8.

Record
UBUNTU-CVE-2026-59879
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVCLSA-2026-1784682983 No score

TuxCare security update for immutable (1 CVE)

TuxCare rebuilt immutable to address 1 CVE. Fixed in 5.0.3-tuxcare.2.

Record
CLSA-2026-1784682983
Updated
2026-11-02
OSVCLSA-2026-1784683091 No score

TuxCare security update for immutable (1 CVE)

TuxCare rebuilt immutable to address 1 CVE. Fixed in 4.3.7-tuxcare.2.

Record
CLSA-2026-1784683091
Updated
2026-11-02
OSVCLSA-2026-1784769532 No score

TuxCare security update for immutable (1 CVE)

TuxCare rebuilt immutable to address 1 CVE. Fixed in 4.3.5-tuxcare.2.

Record
CLSA-2026-1784769532
Updated
2026-11-02
OSVCLSA-2026-1784769615 No score

TuxCare security update for immutable (2 CVEs)

TuxCare rebuilt immutable to address 2 CVEs. Fixed in 4.1.0-tuxcare.2.

Record
CLSA-2026-1784769615
Updated
2026-11-02
OSVCLSA-2026-1788775607 No score

TuxCare security update for immutable (1 CVE)

TuxCare rebuilt immutable to address 1 CVE. Fixed in 3.8.3-tuxcare.2.

Record
CLSA-2026-1788775607
Updated
2026-11-02
OSVCLSA-2026-1790084679 No score

TuxCare security update for immutable (2 CVEs)

TuxCare rebuilt immutable to address 2 CVEs. Fixed in 5.1.5-tuxcare.1.

Record
CLSA-2026-1790084679
Updated
2026-11-02
OSVCLSA-2026-1790866103 No score

TuxCare security update for immutable (1 CVE)

TuxCare rebuilt immutable to address 1 CVE. Fixed in 3.7.6-tuxcare.2.

Record
CLSA-2026-1790866103
Updated
2026-11-02
OSVCLSA-2026-1792163804 No score

TuxCare security update for immutable (2 CVEs)

TuxCare rebuilt immutable to address 2 CVEs. Fixed in 4.3.8-tuxcare.1.

Record
CLSA-2026-1792163804
Updated
2026-11-02
OSVROOT-APP-NPM-CVE-2026-59879 No score

CVE-2026-59879 in immutable - Patched by Root

Root has patched CVE-2026-59879 in the immutable package for Root:npm. Multiple fixed versions available.

Record
ROOT-APP-NPM-CVE-2026-59879
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
immutable
npm
5.0.0-beta.1 up to 5.1.8
5.1.8
immutable
npm
4.0.0-rc.1 up to 4.3.9
4.3.9
immutable
npm
before 3.8.4
3.8.4
immutable
TuxCare:npm
5.0.3-tuxcare.0 up to 5.0.3-tuxcare.2, plus listed versions
5.0.35.0.3-tuxcare.1
5.0.3-tuxcare.2
immutable
TuxCare:npm
4.3.7-tuxcare.0 up to 4.3.7-tuxcare.2, plus listed versions
4.3.74.3.7-tuxcare.1
4.3.7-tuxcare.2
immutable
TuxCare:npm
4.3.5-tuxcare.0 up to 4.3.5-tuxcare.2, plus listed versions
4.3.54.3.5-tuxcare.1
4.3.5-tuxcare.2
immutable
TuxCare:npm
From an advisory covering 2 CVEs
4.1.0-tuxcare.0 up to 4.1.0-tuxcare.2, plus listed versions
4.1.04.1.0-tuxcare.1
4.1.0-tuxcare.2
immutable
TuxCare:npm
3.8.3-tuxcare.0 up to 3.8.3-tuxcare.2, plus listed versions
3.8.33.8.3-tuxcare.1
3.8.3-tuxcare.2
immutable
TuxCare:npm
From an advisory covering 2 CVEs
5.1.5-tuxcare.0 up to 5.1.5-tuxcare.1, plus listed versions
5.1.5
5.1.5-tuxcare.1
immutable
TuxCare:npm
3.7.6-tuxcare.0 up to 3.7.6-tuxcare.2, plus listed versions
3.7.63.7.6-tuxcare.1
3.7.6-tuxcare.2
Show 43 moreShow less
Affected packages
PackageAffectedFixed
immutable
TuxCare:npm
From an advisory covering 2 CVEs
4.3.8-tuxcare.0 up to 4.3.8-tuxcare.1, plus listed versions
4.3.8
4.3.8-tuxcare.1
node-immutable
Debian:12
All versions, plus listed versions
4.1.0-34.3.4-14.3.8-14.3.8-24.3.9-1
None known
node-immutable
Debian:13
All versions, plus listed versions
4.3.4-14.3.8-14.3.8-24.3.9-1
None known
node-immutable
Debian:14
before 4.3.9-1, plus listed versions
4.3.4-14.3.8-14.3.8-2
4.3.9-1
rubygem-foreman_remote_execution
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:16.5.3-2.el9sat
0:16.5.3-2.el9sat
rubygem-foreman_remote_execution-cockpit
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:16.5.3-2.el9sat
0:16.5.3-2.el9sat
foreman
Red Hat:satellite_capsule:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-debug
Red Hat:satellite_capsule:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-pcp
Red Hat:satellite_capsule:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman
Red Hat:satellite_utils:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-cli
Red Hat:satellite_utils:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-cli
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-debug
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-dynflow-sidekiq
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-ec2
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-journald
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-libvirt
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-openstack
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-pcp
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-postgresql
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-redis
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-service
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-telemetry
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-vmware
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
rubygem-hammer_cli
Red Hat:satellite_utils:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0-2.el9sat
0:3.18.0-2.el9sat
rubygem-hammer_cli
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0-2.el9sat
0:3.18.0-2.el9sat
python3.12-dynaconf
Red Hat:satellite_capsule:6.19::el9
From an advisory covering 31 CVEs
before 0:3.2.13-2.el9pc
0:3.2.13-2.el9pc
python3.12-dynaconf
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.2.13-2.el9pc
0:3.2.13-2.el9pc
yggdrasil-worker-forwarder
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:0.1.0-2.1.el9sat
0:0.1.0-2.1.el9sat
python3.12-sqlparse
Red Hat:satellite_capsule:6.19::el9
From an advisory covering 31 CVEs
before 0:0.6.0-1.el9pc
0:0.6.0-1.el9pc
python3.12-sqlparse
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:0.6.0-1.el9pc
0:0.6.0-1.el9pc
rubygem-katello
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:4.20.0.11-1.el9sat
0:4.20.0.11-1.el9sat
python3.12-gitpython
Red Hat:satellite_capsule:6.19::el9
From an advisory covering 31 CVEs
before 0:3.1.62-1.el9pc
0:3.1.62-1.el9pc
python3.12-gitpython
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.1.62-1.el9pc
0:3.1.62-1.el9pc
immutable
Root:npm
before 3.8.4-aikido.2
3.8.4-aikido.25.0.3-aikido.15.1.5-aikido.15.1.6-aikido.15.1.1-aikido.45.1.7-aikido.15.1.1-aikido.54.3.8-aikido.23.7.6-aikido.34.3.7-aikido.45.1.6-aikido.23.8.3-aikido.13.8.3-aikido.25.0.3-aikido.24.0.0-aikido.14.0.0-aikido.24.3.6-aikido.14.0.0-rc.12-aikido.13.7.6-aikido.43.8.4-aikido.1
@rootio/immutable
Root:npm
before 3.8.4-root.io.2
3.8.4-root.io.25.0.3-root.io.15.1.5-root.io.15.1.6-root.io.15.1.1-root.io.45.1.7-root.io.15.1.1-root.io.54.3.8-root.io.23.7.6-root.io.34.3.7-root.io.45.1.6-root.io.23.8.3-root.io.13.8.3-root.io.25.0.3-root.io.24.0.0-root.io.14.0.0-root.io.24.3.6-root.io.14.0.0-rc.12-root.io.13.7.6-root.io.43.8.4-root.io.1
node-immutable
Ubuntu:20.04:LTS
All versions, plus listed versions
3.8.2+dfsg-3
None known
node-immutable
Ubuntu:22.04:LTS
All versions, plus listed versions
3.8.2+dfsg-34.0.0-14.0.0-2
None known
node-immutable
Ubuntu:24.04:LTS
All versions, plus listed versions
4.1.0-34.3.4-1
None known
node-immutable
Ubuntu:25.10
All versions, plus listed versions
4.3.4-1
None known
node-immutable
Ubuntu:26.10
All versions, plus listed versions
4.3.8-24.3.9-1
None known
node-immutable
Ubuntu:26.04:LTS
All versions, plus listed versions
4.3.4-14.3.8-2
None known

History

History
RecordedChangedSources
affected, facts
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-59879 is a high vulnerability (CVSS 8.7) in Immutable-js Immutable, published July 8, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.57%, the 47th percentile. Fixed in immutable 5.1.8.

References

Show 183 moreShow less
This page doesn't list everything

Left out here: the rest of 2 source descriptions. The JSON record has them.

MoveEnter Open