CVE-2026-31576

HIGHCVSS · not yet scored7.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
7.8EG
EchelonGraph verdictPlan a fixSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS PROB: 0%CVSS v2: Exploit: None knownExposed: 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)
EG Risk
40(Track)
EG Risk 40/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
Severity78% × 45%
Exploitation0% × 40%
Automatability30% × 15%
Action: Routine — remediate on your standard cadence.
EPSS PROB
0%
EPSS %ILE
3%
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

Patch Availability(1)

Vendor / EcosystemFixed in / PatchReleasedSource
linuxKernel @ 5.10.258osv

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.

Affected Packages

(5 across 4 ecosystems)
Debian:11(2)
PackageVulnerable rangeFixed inDependents
linux5.10.103-1 ... 5.10.92-2 (54 versions)5.10.259-1
linux-6.16.1.106-3~deb11u1 ... 6.1.174-1~deb11u1 (20 versions)6.1.176-1~deb11u1
Debian:12(1)
PackageVulnerable rangeFixed inDependents
linux6.1.106-1 ... 6.1.99-1 (53 versions)6.1.176-1
Debian:13(1)
PackageVulnerable rangeFixed inDependents
linux6.12.38-1 ... 6.12.85-1~bpo12+1 (17 versions)6.12.85-1
Debian:14(1)
PackageVulnerable rangeFixed inDependents
linux6.12.100-1 ... 6.19~rc8-1~exp1 (126 versions)6.19.14-1

Weakness Classification(1)

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

All Vendor Advisories

(25)

Every vendor that published an advisory referencing this CVE — pulled from our cve_vendor_advisories aggregation. Click any row for the vendor's original advisory page.

Data Freshness Timeline

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

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

Frequently asked(4)

What is CVE-2026-31576?
CVE-2026-31576 is a high 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 0% probability of exploitation in the next 30 days, which ranks it in the top 97.3% of all scored CVEs.
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

See which npm, PyPI, Go, and Maven packages are affected by 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.