coresight: platform: defer connection counter increment until alloc succeeds
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.158, 6.12.111, 6.18.53, 7.1.5
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: coresight: platform: defer connection counter increment until alloc succeeds coresight_add_out_conn() increments nr_outconns before calling devm_krealloc_array() and again before devm_kmalloc(). If either allocation fails, the counter is already bumped while the corresponding array entry is NULL or uninitialized garbage. coresight_add_in_conn() has the same problem with nr_inconns and devm_krealloc_array(). In both cases the probe returns -ENOMEM, which causes coresight_get_platform_data() to call coresight_release_platform_data() for cleanup. That function iterates up to nr_outconns (or nr_inconns) entries and dereferences each pointer unconditionally, hitting the NULL or garbage entry and panicking instead of failing gracefully. Fix by moving the counter increments to after all allocations succeed, so the struct is always consistent on any error path.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 3d4ff657e454f8dba3e5e268e731e6e28c6031c1 · fixed in dd3c9e1c9858c797ba78f4ca6c0fc663eeac6d72; From 3d4ff657e454f8dba3e5e268e731e6e28c6031c1 · fixed in aed6915c2f304ed34281856c53e374483c71b68b; From 3d4ff657e454f8dba3e5e268e731e6e28c6031c1 · fixed in 09c44549820df67048be3ba19c723bac72ebb98e; From 3d4ff657e454f8dba3e5e268e731e6e28c6031c1 · fixed in 8ca9adc805884d3bb5038082462577f86c2c4a10; From 3d4ff657e454f8dba3e5e268e731e6e28c6031c1 · fixed in 1563ae33dc4f5ebac96b93af2ef72e72aaaa31ae
- Linux Linux
6.5
- KernelLinux
From 6.5.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.111; From 6.13.0 · fixed in 6.18.53; From 6.19.0 · fixed in 7.1.5