CVE-2025-39756

MEDIUMNVD 5.55.5
EchelonGraph scoreMEDIUM confidence

Score 5.5 from GitHub Security Advisory published 2025-09-11. NVD baseline CVSS 5.5; sources differ by 0.0.

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa, nvd
5.5EG
EchelonGraph verdictMonitorLow exploitation likelihood right now — keep watching.
  • Lower severity and no public exploit yet
CISA-KEV: Not listedEPSS PROB: 0%CVSS: 5.5Exploit: None knownExposed: 0

A fix is available — apply it.

In the Linux kernel, the following vulnerability has been resolved:

fs: Prevent file descriptor table allocations exceeding INT_MAX

When sysctl_nr_open is set to a very high value (for example, 1073741816 as set by systemd), processes attempting to use file descriptors near the limit can trigger massive memory allocation attempts that exceed INT_MAX, resulting in a WARNING in mm/slub.c:

WARNING: CPU: 0 PID: 44 at mm/slub.c:5027 __kvmalloc_node_noprof+0x21a/0x288

This happens because kvmalloc_array() and kvmalloc() check if the requested size exceeds INT_MAX and emit a warning when the allocation is not flagged with __GFP_NOWARN.

Specifically, when nr_open is set to 1073741816 (0x3ffffff8) and a process calls dup2(oldfd, 1073741880), the kernel attempts to allocate:

  • File descriptor array: 1073741880 * 8 bytes = 8,589,935,040 bytes
  • Multiple bitmaps: ~400MB
  • Total allocation size: > 8GB (exceeding INT_MAX = 2,147,483,647)

Reproducer:

  • Set /proc/sys/fs/nr_open to 1073741816:
# echo 1073741816 > /proc/sys/fs/nr_open
  • Run a program that uses a high file descriptor:
#include #include

int main() { struct rlimit rlim = {1073741824, 1073741824}; setrlimit(RLIMIT_NOFILE, &rlim); dup2(2, 1073741880); // Triggers the warning return 0; }

  • Observe WARNING in dmesg at mm/slub.c:5027

systemd commit a8b627a introduced automatic bumping of fs.nr_open to the maximum possible value. The rationale was that systems with memory control groups (memcg) no longer need separate file descriptor limits since memory is properly accounted. However, this change overlooked that:

  • The kernel's allocation functions still enforce INT_MAX as a maximum
size regardless of memcg accounting
  • Programs and tests that legitimately test file descriptor limits can
inadvertently trigger massive allocations
  • The resulting allocations (>8GB) are impractical and will always fail

systemd's algorithm starts with INT_MAX and keeps halving the value until the kernel accepts it. On most systems, this results in nr_open being set to 1073741816 (0x3ffffff8), which is just under 1GB of file descriptors.

While processes rarely use file descriptors near this limit in normal operation, certain selftests (like tools/testing/selftests/core/unshare_test.c) and programs that test file descriptor limits can trigger this issue.

Fix this by adding a check in alloc_fdtable() to ensure the requested allocation size does not exceed INT_MAX. This causes the operation to fail with -EMFILE instead of triggering a kernel warning and avoids the impractical >8GB memory allocation request.

CVSS v3
5.5
EG Score
5.5(medium)
EG Risk
29(Track)
EG Risk 29/100SSVC: Track

EG Risk is EchelonGraph's 0–100 priority score: it fuses intrinsic severity with real-world exploitation and automatability so you can rank equal-severity CVEs and fix the most dangerous first. Higher = act sooner. Distinct from the 0–10 EG Score (severity).

How it’s computed
Severity55% × 45%
Exploitation0% × 40%
Automatability30% × 15%
Action: Routine — remediate on your standard cadence.
EPSS PROB
0%
EPSS %ILE
6%
KEV
Not listed

Published

September 11, 2025

Last Modified

July 14, 2026

Advisory Details (10)

Auto-updated Jul 19, 2026
Patch available.
generic Patch Available

[SECURITY] [DLA 4327-1] linux security update

https://lists.debian.org/debian-lts-announce/2025/10/msg00007.html
generic

fs: Prevent file descriptor table allocations exceeding INT_MAX - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/f95638a8f22eba307dceddf5aef9ae2326bbcf98
generic

fs: Prevent file descriptor table allocations exceeding INT_MAX - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/dfd1f4ea98c3bd3a03d12169b5b2daa1f0a3e4ae
generic

fs: Prevent file descriptor table allocations exceeding INT_MAX - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/d4f9351243c17865a8cdbe6b3ccd09d0b13a7bcc
generic

fs: Prevent file descriptor table allocations exceeding INT_MAX - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/b4159c5a90c03f8acd3de345a7f5fc63b0909818
generic

fs: Prevent file descriptor table allocations exceeding INT_MAX - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/9f61fa6a2a89a610120bc4e5d24379c667314b5c
generic

fs: Prevent file descriptor table allocations exceeding INT_MAX - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/749528086620f8012b83ae032a80f6ffa80c45cd
generic

fs: Prevent file descriptor table allocations exceeding INT_MAX - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/628fc28f42d979f36dbf75a6129ac7730e30c04e
generic

fs: Prevent file descriptor table allocations exceeding INT_MAX - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/237e416eb62101f21b28c9e6e564d10efe1ecc6f
generic

fs: Prevent file descriptor table allocations exceeding INT_MAX - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/04a2c4b4511d186b0fce685da21085a5d4acd370

Vendor Advisories for CVE-2025-39756(2)

These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.

Patch Availability(26)

Vendor / EcosystemFixed in / PatchReleasedSource
ubuntulinux-virtual-hwe-20.04-edge (5.15.0.163.173~20.04.1) @ focal2026-05-21ubuntu
ubuntulinux-tools-realtime-5.15 (5.15.0.1096.100) @ jammy2026-05-21ubuntu
ubuntulinux-tools-azure-fips-5.15 (5.15.0.1101.86) @ jammy2026-05-21ubuntu
ubuntulinux-tools-azure-lts-22.04 (5.15.0.1101.99) @ jammy2026-05-21ubuntu
ubuntulinux-tools-gkeop-5.15 (5.15.0.1080.79) @ jammy2026-05-21ubuntu
ubuntulinux-tools-gcp-fips-5.15 (5.15.0.1097.87) @ jammy2026-05-21ubuntu
ubuntulinux-tools-kvm-5.15 (5.15.0.1089.85) @ jammy2026-05-21ubuntu
ubuntulinux-tools-raspi-nolpae (5.15.0.1091.89) @ jammy2026-05-21ubuntu
ubuntulinux-tools-azure-edge (5.15.0.1102.111~20.04.1) @ focal2026-05-21ubuntu
ubuntulinux-virtual-6.8 (6.8.0-100.100) @ noble2026-05-21ubuntu
ubuntulinux-tools-realtime-hwe-22.04 (6.8.1-1041.42~22.04.1) @ jammy2026-05-21ubuntu
ubuntulinux-tools-gcp-edge (6.8.0-1047.50~22.04.2) @ jammy2026-05-21ubuntu
ubuntulinux-tools-realtime-6.8.1 (6.8.1-1041.42) @ noble2026-05-21ubuntu
ubuntulinux-tools-fips-6.8 (6.8.0-100.100+fips1) @ noble2026-05-21ubuntu
ubuntulinux-tools-oracle-lts-24.04 (6.8.0-1043.44) @ noble2026-05-21ubuntu
ubuntulinux-tools-azure-fips-6.8 (6.8.0-1046.52+fips1) @ noble2026-05-21ubuntu
ubuntulinux-virtual-hwe-22.04-edge (6.8.0-100.100~22.04.1) @ jammy2026-05-21ubuntu
ubuntulinux-tools-lowlatency-hwe-20.04-edge (6.8.0-100.100.1) @ noble2026-05-21ubuntu
ubuntulinux-tools-gcp-fips-6.8 (6.8.0-1047.50+fips1) @ noble2026-05-21ubuntu
ubuntulinux-tools-nvidia-lowlatency-64k-6.8 (6.8.0-1046.49.1) @ noble2026-05-21ubuntu
ubuntulinux-tools-ibm-lts-24.04 (6.8.0-1044.44) @ noble2026-05-21ubuntu
ubuntulinux-tools-azure-lts-24.04 (6.8.0-1046.52) @ noble2026-05-21ubuntu
ubuntulinux-tools-gke-64k-6.8 (6.8.0-1043.48) @ noble2026-05-21ubuntu
ubuntulinux-tools-azure-edge (6.8.0-1051.57~22.04.1) @ jammy2026-05-21ubuntu
ubuntulinux-xilinx-zynqmp (6.8.0.1023.24) @ noble2026-05-21ubuntu
linuxKernel @ 5.4.297osv

Patches are aggregated from vendor advisories (Red Hat, Microsoft, Cisco, GitHub) and package ecosystems (OSV, GHSA). Multiple rows for the same upstream release have been deduplicated.

Weakness Classification(1)

MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.

Additional Vendor Advisories

(24)

Vendors that published advisories for this CVE beyond the curated set above. Broader coverage but minimal per-row detail — click through for the original advisory.

Data Freshness Timeline

(refreshed 9× in last 7d / 43× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

Showing the most recent 100 of 124 total refreshes for this CVE.

  1. 2026-07-26 14:54 UTCEPSS rescore
  2. 2026-07-25 14:17 UTCEPSS rescore
  3. 2026-07-25 14:17 UTCEPSS rescore
  4. 2026-07-24 14:17 UTCEPSS rescore
  5. 2026-07-23 02:55 UTCEG score recompute
  6. 2026-07-22 14:07 UTCEPSS rescore
  7. 2026-07-22 14:07 UTCEPSS rescore
  8. 2026-07-21 15:24 UTCEPSS rescore
  9. 2026-07-20 17:07 UTCEPSS rescore
  10. 2026-07-19 14:30 UTCEPSS rescore
  11. 2026-07-19 14:30 UTCEPSS rescore
  12. 2026-07-19 02:28 UTCEPSS rescore
  13. 2026-07-19 02:28 UTCEPSS rescore
  14. 2026-07-16 17:02 UTCEPSS rescore
  15. 2026-07-15 16:57 UTCEPSS rescore
  16. 2026-07-15 16:57 UTCEPSS rescore
  17. 2026-07-15 01:59 UTCEPSS rescore
  18. 2026-07-15 01:59 UTCEPSS rescore
  19. 2026-07-14 13:19 UTCNVD updateCVSS v3 → 5.5 · severity → MEDIUM
  20. 2026-07-14 13:11 UTCMITRE cvelistV5
  21. 2026-07-13 22:29 UTCEPSS rescore
  22. 2026-07-13 22:29 UTCEPSS rescore
  23. 2026-07-13 06:12 UTCEPSS rescore
  24. 2026-07-12 05:46 UTCEPSS rescore
  25. 2026-07-11 08:27 UTCEPSS rescore
Show 75 more
  1. 2026-07-11 08:27 UTCEPSS rescore
  2. 2026-07-10 06:24 UTCOSV refresh
  3. 2026-07-09 19:09 UTCEPSS rescore
  4. 2026-07-09 19:09 UTCEPSS rescore
  5. 2026-07-07 13:45 UTCEPSS rescore
  6. 2026-07-06 16:27 UTCEPSS rescore
  7. 2026-07-06 16:27 UTCEPSS rescore
  8. 2026-07-06 02:23 UTCEPSS rescore
  9. 2026-07-05 02:30 UTCEPSS rescore
  10. 2026-07-04 06:30 UTCEPSS rescore
  11. 2026-07-01 15:06 UTCEPSS rescore
  12. 2026-07-01 15:06 UTCEPSS rescore
  13. 2026-06-30 23:22 UTCEPSS rescore
  14. 2026-06-30 23:22 UTCEPSS rescore
  15. 2026-06-29 14:06 UTCEPSS rescore
  16. 2026-06-29 14:06 UTCEPSS rescore
  17. 2026-06-28 04:55 UTCEPSS rescore
  18. 2026-06-28 04:55 UTCEPSS rescore
  19. 2026-06-27 03:08 UTCEPSS rescore
  20. 2026-06-27 03:08 UTCEPSS rescore
  21. 2026-06-25 13:49 UTCEPSS rescore
  22. 2026-06-25 13:49 UTCEPSS rescore
  23. 2026-06-24 14:04 UTCEPSS rescore
  24. 2026-06-24 14:04 UTCEPSS rescore
  25. 2026-06-23 21:32 UTCEPSS rescore
  26. 2026-06-23 21:32 UTCEPSS rescore
  27. 2026-06-22 14:25 UTCEPSS rescore
  28. 2026-06-22 14:25 UTCEPSS rescore
  29. 2026-06-21 16:42 UTCOSV refresh
  30. 2026-06-21 14:56 UTCEPSS rescore
  31. 2026-06-21 14:56 UTCEPSS rescore
  32. 2026-06-21 01:59 UTCEPSS rescore
  33. 2026-06-21 01:59 UTCEPSS rescore
  34. 2026-06-19 19:25 UTCEPSS rescore
  35. 2026-06-19 19:25 UTCEPSS rescore
  36. 2026-06-18 17:52 UTCEPSS rescore
  37. 2026-06-18 17:52 UTCEPSS rescore
  38. 2026-06-17 17:52 UTCEPSS rescore
  39. 2026-06-16 17:52 UTCEPSS rescore
  40. 2026-06-16 17:52 UTCEPSS rescore
  41. 2026-06-14 23:17 UTCEPSS rescore
  42. 2026-06-13 23:00 UTCEPSS rescore
  43. 2026-06-12 23:11 UTCEPSS rescore
  44. 2026-06-11 14:00 UTCEPSS rescore
  45. 2026-06-10 22:18 UTCEPSS rescore
  46. 2026-06-10 13:22 UTCEPSS rescore
  47. 2026-06-08 14:16 UTCEPSS rescore
  48. 2026-06-08 14:16 UTCEPSS rescore
  49. 2026-06-07 15:24 UTCEPSS rescore
  50. 2026-06-06 13:47 UTCEPSS rescore
  51. 2026-06-06 13:47 UTCEPSS rescore
  52. 2026-06-05 22:46 UTCEPSS rescore
  53. 2026-06-05 22:46 UTCEPSS rescore
  54. 2026-06-05 06:10 UTCEPSS rescore
  55. 2026-06-05 06:10 UTCEPSS rescore
  56. 2026-06-04 13:12 UTCEPSS rescore
  57. 2026-06-04 13:12 UTCEPSS rescore
  58. 2026-06-02 20:12 UTCEPSS rescore
  59. 2026-06-02 15:32 UTCOSV refresh
  60. 2026-06-01 13:51 UTCEPSS rescore
  61. 2026-06-01 13:51 UTCEPSS rescore
  62. 2026-05-31 22:30 UTCEPSS rescore
  63. 2026-05-31 22:30 UTCEPSS rescore
  64. 2026-05-31 00:16 UTCEPSS rescore
  65. 2026-05-29 13:44 UTCEPSS rescore
  66. 2026-05-28 13:44 UTCEPSS rescore
  67. 2026-05-28 13:44 UTCEPSS rescore
  68. 2026-05-28 13:44 UTCEPSS rescore
  69. 2026-05-28 13:44 UTCEPSS rescore
  70. 2026-05-27 13:40 UTCEPSS rescore
  71. 2026-05-27 13:40 UTCEPSS rescore
  72. 2026-05-27 13:40 UTCEPSS rescore
  73. 2026-05-27 13:40 UTCEPSS rescore
  74. 2026-05-26 13:43 UTCEPSS rescore
  75. 2026-05-26 13:43 UTCEPSS rescore

Frequently asked(5)

What is CVE-2025-39756?
CVE-2025-39756 is a medium vulnerability published on September 11, 2025. In the Linux kernel, the following vulnerability has been resolved: fs: Prevent file descriptor table allocations exceeding INT_MAX When sysctlnropen is set to a very high value (for example, 1073741816 as set by systemd), processes attempting to use file descriptors near the limit can trigger…
When was CVE-2025-39756 disclosed?
CVE-2025-39756 was first published in the National Vulnerability Database on September 11, 2025, with the most recent update on July 14, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2025-39756 actively exploited?
CVE-2025-39756 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 0% probability of exploitation in the next 30 days, which ranks it in the top 93.7% of all scored CVEs.
What is the CVSS score of CVE-2025-39756?
CVE-2025-39756 has a CVSS v3 base score of 5.5 (NVD).
How do I remediate CVE-2025-39756?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2025-39756, EchelonGraph cross-links them in the Vendor Advisories panel below — those typically contain the canonical remediation steps, fixed version numbers, and any vendor-specific mitigations.

Dependency Blast Radius

Explore the affected products and dependency analysis for CVE-2025-39756

Explore →

Is Your Infrastructure Affected by CVE-2025-39756?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.