CVE-2026-64447

Source
https://cve.org/CVERecord?id=CVE-2026-64447
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64447.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-64447
Downstream
Published
2026-07-25T08:51:18.096Z
Modified
2026-07-28T04:03:08.291371262Z
Severity
  • 7.8 (High) CVSS_V3 - CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H CVSS Calculator
Summary
staging: media: ipu7: fix double-free and use-after-free in error paths
Details

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

staging: media: ipu7: fix double-free and use-after-free in error paths

In both ipu7isysinit() and ipu7psysinit(), pdata is allocated and then passed to ipu7businitializedevice(), which stores it in adev->pdata. The ipu7bus_release() function frees adev->pdata when the device's reference count drops to zero.

Two error paths incorrectly call kfree(pdata) after the device teardown has already freed it:

  1. When ipu7mmuinit() fails: putdevice() is called, which drops the reference count to zero and triggers ipu7bus_release() -> kfree(pdata). The subsequent kfree(pdata) is a double-free.

  2. When ipu7busadddevice() fails: it calls auxiliarydeviceuninit() internally, which calls putdevice() -> ipu7busrelease() -> kfree(pdata). The subsequent kfree(pdata) is again a double-free.

Note that the kfree(pdata) when ipu7businitializedevice() itself fails is correct, because in that case auxiliarydevice_init() failed and the release function was never set up, so pdata must be freed manually.

Additionally, the error code was not saved before calling putdevice(), causing ERRCAST() to dereference the already-freed adev pointer when constructing the return value. Fix this by saving the error from deverrprobe() before putdevice() and returning ERRPTR() instead.

Remove the redundant kfree(pdata) calls and fix the use-after-free in the return values of the two affected error paths.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/64xxx/CVE-2026-64447.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
b7fe4c0019b12d60ece3e99eeb0ccfd5a1d103e5
Fixed
b5ddc7257bee71f5b8cf9083e2b0ac0427e9fbb3
Fixed
837c1f9655421055f751ed34745e820a54a27642
Fixed
d3a9a8cf2d7fd61a2f63df61f6cbc0a9bb007cc0

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64447.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.17.0
Fixed
6.18.39
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
7.1.4

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64447.json"