7.8

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

Modified
AliasesUBUNTU-CVE-2026-31576DEBIAN-CVE-2026-31576CGA-48x4-pcf6-2xpj
Published 24-04-2026Last modified 14-06-2026

Vulnerability summary

CVE-2026-31576 is a high (CVSS 7.8) Use After Free vulnerability in linux. EPSS estimates a 0.13% chance of exploitation in the next 30 days, higher than 2.4% of scored vulnerabilities.

Priority
Routine

Not severe (CVSS 7.8, local access); no exploitation reported by the 5 checked sources

Source freshness unavailable

How is this decided?
CVSS score
7.8/10
010
High · v3.1 (NVD)
EPSS score
0.13%
0%100%
Low · -0.05 pp in 30 days
KEVNot listedNot listed by any tracked catalog.
RansomwareNot flaggedNo ransomware use recorded.
Public exploits0No public exploits recorded

Advisory lineage

Upstream 0 · Downstream 44 · Related 45

Timeline

  1. 24-04-2026
    PublishedVulnerability first disclosed.
  2. 14-06-2026
    Last modifiedVulnerability information updated.

Description

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 metrics

3 scores · 3 sources · 1 version

EPSS trend

Probability

0.13%

Chance of exploitation in the next 30 days

Percentile

2%

Versus all other CVEs

30-day change

Decrease -0.05 pp

From 0.17% on 04-10-2026

04-10-202603-11-2026

Known exploited

Compare KEV catalogs
CISA KEV

Not in the CISA KEV catalog.

ENISA CNW

Not in the ENISA CNW catalog.

CIRCL

Not in the CIRCL catalog.

Public exploits

0 found

No public exploits indexed.

Weaknesses

CWE · root cause

Affected systems

Version check

Known conditions: local access, low-privilege account, no user interaction (CVSS vector). Other conditions: not stated in public data.

Ubuntu158 products
  • linuxAll versions (No fix recorded) | < 5.15.0-186.196 | < 6.8.0-136.136 | < 7.0.0-27.27
  • linux-allwinner-5.19All versions (No fix recorded)
  • linux-awsAll versions (No fix recorded) | < 5.15.0-1112.119 | < 6.8.0-1061.64 | < 7.0.0-1008.8
  • linux-aws-5.0All versions (No fix recorded)
  • linux-aws-5.11All versions (No fix recorded)
Chainguard10 products
  • linux-aws-6.12< 6.12.85-r0
  • linux-aws-6.18< 6.18.31-r0
  • linux-azure-6.18< 6.18.31-r0
  • linux-gcp-6.12< 6.12.85-r0
  • linux-gcp-6.18< 6.18.31-r0
Linux2 products
  • linux≥ 8bc4a9ed85046c214458c9e82aea75d2f46cfffd, < 87b9685cca91ed715c39ba544715832d26a7f4b4 | ≥ 8bc4a9ed85046c214458c9e82aea75d2f46cfffd, < 131ec9046e1c8af101aebdaec4e8095e05f3312b | ≥ 8bc4a9ed85046c214458c9e82aea75d2f46cfffd, < 67fd62e3efdc9dce01f76d95a745212f4feb38e6 | ≥ 8bc4a9ed85046c214458c9e82aea75d2f46cfffd, < 45cbaf5c7cdc5386d86377f0daf94a17a007fed0 | ≥ 8bc4a9ed85046c214458c9e82aea75d2f46cfffd, < 98a0a81ce78020c2522e0046f49d200de9778cb9 | ≥ 8bc4a9ed85046c214458c9e82aea75d2f46cfffd, < 07e9e674b6146b1f6fc41b1f54b8968bf2802824 | ≥ 8bc4a9ed85046c214458c9e82aea75d2f46cfffd, < 2145c71a8044362e82e9923f001ba2aeb771b848 | ≥ 8bc4a9ed85046c214458c9e82aea75d2f46cfffd, < fcd1d70792a35c8a97414fe429f48311e41269c2 | ≥ 8bc4a9ed85046c214458c9e82aea75d2f46cfffd, < 3b7da2b4d0fe014eff181ed37e3bf832eb8ed258 | 4.4
  • linux_kernel< 6.6.136 | ≥ 6.7, < 6.12.83 | ≥ 6.13, < 6.18.24 | ≥ 6.19, < 6.19.14 | ≥ 7.0, < 7.0.1
Debian1 product
  • linux< 6.1.176-1 | < 6.12.85-1 | < 6.19.14-1

4 vendors · 171 products

References

44 links
Show all 44 references