CVE-2026-31576

NVD 0.07.8
EchelonGraph scoreLOW confidence

Score 7.8 from GitHub Security Advisory (severity: HIGH) published 2026-04-24.

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa
0.0
EchelonGraph verdictMonitorLow exploitation likelihood right now — keep watching.
  • No confirmed exploitation signals yet
CISA-KEV: Not listedEPSS: 0%CVSS: Exploit: 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:

media: hackrf: fix to not free memory after the device is registered in hackrf_probe()

In hackrf driver, the following race condition occurs:

CPU0						CPU1
hackrf_probe()
  kzalloc(); // alloc hackrf_dev
  ....
  v4l2_device_register();
  ....
						fd = sys_open("/path/to/dev"); // open hackrf fd
						....
  v4l2_device_unregister();
  ....
  kfree(); // free hackrf_dev
  ....
						sys_ioctl(fd, ...);
						  v4l2_ioctl();
						    video_is_registered() // UAF!!
						....
						sys_close(fd);
						  v4l2_release() // UAF!!
						    hackrf_video_release()
						      kfree(); // DFB!!

When a V4L2 or video device is unregistered, the device node is removed so new open() calls are blocked.

However, file descriptors that are already open-and any in-flight I/O-do not terminate immediately; they remain valid until the last reference is dropped and the driver's release() is invoked.

Therefore, freeing device memory on the error path after hackrf_probe() has registered dev it will lead to a race to use-after-free vuln, since those already-open handles haven't been released yet.

And since release() free memory too, race to use-after-free and double-free vuln occur.

To prevent this, if device is registered from probe(), it should be modified to free memory only through release() rather than calling kfree() directly.

CVSS v3
EG Score
7.8(low)
EPSS
2.8%
KEV
Not listed

Published

April 24, 2026

Last Modified

June 14, 2026

Advisory Details (9)

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

media: hackrf: fix to not free memory after the device is registered in hackrf_probe() - kernel/git/stable/linux.git - Linux kernel stable tree

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

media: hackrf: fix to not free memory after the device is registered in hackrf_probe() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/98a0a81ce78020c2522e0046f49d200de9778cb9
generic

media: hackrf: fix to not free memory after the device is registered in hackrf_probe() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/87b9685cca91ed715c39ba544715832d26a7f4b4
generic

media: hackrf: fix to not free memory after the device is registered in hackrf_probe() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/67fd62e3efdc9dce01f76d95a745212f4feb38e6
generic

media: hackrf: fix to not free memory after the device is registered in hackrf_probe() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/45cbaf5c7cdc5386d86377f0daf94a17a007fed0
generic

media: hackrf: fix to not free memory after the device is registered in hackrf_probe() - kernel/git/stable/linux.git - Linux kernel stable tree

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

media: hackrf: fix to not free memory after the device is registered in hackrf_probe() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/2145c71a8044362e82e9923f001ba2aeb771b848
generic

media: hackrf: fix to not free memory after the device is registered in hackrf_probe() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/131ec9046e1c8af101aebdaec4e8095e05f3312b
generic

media: hackrf: fix to not free memory after the device is registered in hackrf_probe() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/07e9e674b6146b1f6fc41b1f54b8968bf2802824

Weakness Classification(1)

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

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 138 total refreshes for this CVE.

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

Frequently asked(4)

What is CVE-2026-31576?
CVE-2026-31576 is a publicly disclosed vulnerability published on April 24, 2026. In the Linux kernel, the following vulnerability has been resolved: media: hackrf: fix to not free memory after the device is registered in hackrf_probe() In hackrf driver, the following race condition occurs: When a V4L2 or video device is unregistered, the device node is removed so new open()…
When was CVE-2026-31576 disclosed?
CVE-2026-31576 was first published in the National Vulnerability Database on April 24, 2026, with the most recent update on June 14, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2026-31576 actively exploited?
CVE-2026-31576 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 2.8% percentile likelihood of exploitation in the next 30 days — higher percentiles indicate greater predicted risk.
How do I remediate CVE-2026-31576?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2026-31576, 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-31576

Explore →

Is Your Infrastructure Affected by CVE-2026-31576?

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