CVE-2026-31477

HIGHNVD 7.57.5
EchelonGraph scoreMEDIUM confidence

Score 7.5 from GitHub Security Advisory (severity: HIGH) published 2026-04-22. NVD baseline CVSS 7.5; sources differ by 0.0.

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa, nvd
7.5
EchelonGraph verdictPlan a fixSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS: 0%CVSS: 7.5Exploit: NoneExposed: 0

No vendor fix yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for a patch.

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

ksmbd: fix memory leaks and NULL deref in smb2_lock()

smb2_lock() has three error handling issues after list_del() detaches smb_lock from lock_list at no_check_cl:

1) If vfs_lock_file() returns an unexpected error in the non-UNLOCK path, goto out leaks smb_lock and its flock because the out: handler only iterates lock_list and rollback_list, neither of which contains the detached smb_lock.

2) If vfs_lock_file() returns -ENOENT in the UNLOCK path, goto out leaks smb_lock and flock for the same reason. The error code returned to the dispatcher is also stale.

3) In the rollback path, smb_flock_init() can return NULL on allocation failure. The result is dereferenced unconditionally, causing a kernel NULL pointer dereference. Add a NULL check to prevent the crash and clean up the bookkeeping; the VFS lock itself cannot be rolled back without the allocation and will be released at file or connection teardown.

Fix cases 1 and 2 by hoisting the locks_free_lock()/kfree() to before the if(!rc) check in the UNLOCK branch so all exit paths share one free site, and by freeing smb_lock and flock before goto out in the non-UNLOCK branch. Propagate the correct error code in both cases. Fix case 3 by wrapping the VFS unlock in an if(rlock) guard and adding a NULL check for locks_free_lock(rlock) in the shared cleanup.

Found via call-graph analysis using sqry.

CVSS v3
7.5
EG Score
7.5(medium)
EPSS
38.2%
KEV
Not listed

Published

April 22, 2026

Last Modified

April 27, 2026

Advisory Details (6)

Auto-updated Jun 6, 2026
No patch confirmed yet.
generic

ksmbd: fix memory leaks and NULL deref in smb2_lock() - kernel/git/stable/linux.git - Linux kernel stable tree

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

ksmbd: fix memory leaks and NULL deref in smb2_lock() - kernel/git/stable/linux.git - Linux kernel stable tree

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

ksmbd: fix memory leaks and NULL deref in smb2_lock() - kernel/git/stable/linux.git - Linux kernel stable tree

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

ksmbd: fix memory leaks and NULL deref in smb2_lock() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/91aeaa7256006d79a37298f5a1df23325db91599
generic

ksmbd: fix memory leaks and NULL deref in smb2_lock() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/3cdacd11b41569ce75b3162142240f2355e04900
generic

ksmbd: fix memory leaks and NULL deref in smb2_lock() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/309b44ed684496ed3f9c5715d10b899338623512

Vendor Advisories for CVE-2026-31477(1)

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

Weakness Classification(1)

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

Data Freshness Timeline

(refreshed 11× 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 142 total refreshes for this CVE.

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

Frequently asked(5)

What is CVE-2026-31477?
CVE-2026-31477 is a high vulnerability published on April 22, 2026. In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix memory leaks and NULL deref in smb2_lock() smb2lock() has three error handling issues after listdel() detaches smblock from locklist at nocheckcl: 1) If vfslockfile() returns an unexpected error in the non-UNLOCK path,…
When was CVE-2026-31477 disclosed?
CVE-2026-31477 was first published in the National Vulnerability Database on April 22, 2026, with the most recent update on April 27, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2026-31477 actively exploited?
CVE-2026-31477 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 38.2% percentile likelihood of exploitation in the next 30 days — higher percentiles indicate greater predicted risk.
What is the CVSS score of CVE-2026-31477?
CVE-2026-31477 has a CVSS v3 base score of 7.5 (NVD).
How do I remediate CVE-2026-31477?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2026-31477, 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-2026-31477

Explore →

Is Your Infrastructure Affected by CVE-2026-31477?

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