CVE-2025-39901

HIGHNVD 7.17.1
EchelonGraph scoreMEDIUM confidence

Score 7.1 from GitHub Security Advisory (severity: HIGH) published 2025-10-01. NVD baseline CVSS 7.1; sources differ by 0.0.

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa, nvd
Trending — 3 sources updated this week
7.1EG
EchelonGraph verdictPlan a fixSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS PROB: 0%CVSS: 7.1Exploit: None knownExposed: 0

A fix is available — apply it.

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

i40e: remove read access to debugfs files

The 'command' and 'netdev_ops' debugfs files are a legacy debugging interface supported by the i40e driver since its early days by commit 02e9c290814c ("i40e: debugfs interface").

Both of these debugfs files provide a read handler which is mostly useless, and which is implemented with questionable logic. They both use a static 256 byte buffer which is initialized to the empty string. In the case of the 'command' file this buffer is literally never used and simply wastes space. In the case of the 'netdev_ops' file, the last command written is saved here.

On read, the files contents are presented as the name of the device followed by a colon and then the contents of their respective static buffer. For 'command' this will always be ": ". For 'netdev_ops', this will be ": ". But note the buffer is shared between all devices operated by this module. At best, it is mostly meaningless information, and at worse it could be accessed simultaneously as there doesn't appear to be any locking mechanism.

We have also recently received multiple reports for both read functions about their use of snprintf and potential overflow that could result in reading arbitrary kernel memory. For the 'command' file, this is definitely impossible, since the static buffer is always zero and never written to. For the 'netdev_ops' file, it does appear to be possible, if the user carefully crafts the command input, it will be copied into the buffer, which could be large enough to cause snprintf to truncate, which then causes the copy_to_user to read beyond the length of the buffer allocated by kzalloc.

A minimal fix would be to replace snprintf() with scnprintf() which would cap the return to the number of bytes written, preventing an overflow. A more involved fix would be to drop the mostly useless static buffers, saving 512 bytes and modifying the read functions to stop needing those as input.

Instead, lets just completely drop the read access to these files. These are debug interfaces exposed as part of debugfs, and I don't believe that dropping read access will break any script, as the provided output is pretty useless. You can find the netdev name through other more standard interfaces, and the 'netdev_ops' interface can easily result in garbage if you issue simultaneous writes to multiple devices at once.

In order to properly remove the i40e_dbg_netdev_ops_buf, we need to refactor its write function to avoid using the static buffer. Instead, use the same logic as the i40e_dbg_command_write, with an allocated buffer. Update the code to use this instead of the static buffer, and ensure we free the buffer on exit. This fixes simultaneous writes to 'netdev_ops' on multiple devices, and allows us to remove the now unused static buffer along with removing the read access.

CVSS v3
7.1
EG Score
7.1(medium)
EG Risk
32(Track)
EG Risk 32/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
Severity71% × 45%
Exploitation0% × 40%
Automatability0% × 15%
Action: Routine — remediate on your standard cadence.
EPSS PROB
0%
EPSS %ILE
4%
KEV
Not listed

Published

October 1, 2025

Last Modified

August 3, 2026

Advisory Details (4)

Auto-updated Aug 3, 2026
No patch confirmed yet.
generic

i40e: remove read access to debugfs files - kernel/git/stable/linux.git - Linux kernel stable tree

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

i40e: remove read access to debugfs files - kernel/git/stable/linux.git - Linux kernel stable tree

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

i40e: remove read access to debugfs files - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/7d190963b80f4cd99d7008615600aa7cc993c6ba
generic

i40e: remove read access to debugfs files - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/70d3dad7d5ad077965d7a63eed1942b7ba49bfb4

Vendor Advisories for CVE-2025-39901(1)

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

Patch Availability(11)

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.

All Vendor Advisories

(10)

Data Freshness Timeline

(refreshed 8× in last 7d / 39× 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 101 total refreshes for this CVE.

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

Frequently asked(5)

What is CVE-2025-39901?
CVE-2025-39901 is a high vulnerability published on October 1, 2025. In the Linux kernel, the following vulnerability has been resolved: i40e: remove read access to debugfs files The 'command' and 'netdev_ops' debugfs files are a legacy debugging interface supported by the i40e driver since its early days by commit 02e9c290814c ("i40e: debugfs interface"). Both of…
When was CVE-2025-39901 disclosed?
CVE-2025-39901 was first published in the National Vulnerability Database on October 1, 2025, with the most recent update on August 3, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2025-39901 actively exploited?
CVE-2025-39901 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 96.0% of all scored CVEs.
What is the CVSS score of CVE-2025-39901?
CVE-2025-39901 has a CVSS v3 base score of 7.1 (NVD).
How do I remediate CVE-2025-39901?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2025-39901, 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-39901

Explore →

Is Your Infrastructure Affected by CVE-2025-39901?

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