rapidio: clear mport->net when rio_add_net() fails
- 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 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.110, and 4 more
- 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: rapidio: clear mport->net when rio_add_net() fails rio_alloc_net() stores the newly allocated rio_net in mport->net before rio_scan_alloc_net() registers the device. If rio_add_net() fails, rio_scan_alloc_net() drops the device reference with put_device(), which releases the rio_net through the device release callback. However, mport->net is left pointing at the freed object. A later mport unregister path can then dereference the dangling mport->net pointer and may try to free the same rio_net again. Clear mport->net in the rio_add_net() failure path, matching the cleanup done for the destID table allocation failure path.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 4f3509cfcc02e9d757f2714bb7dbbeec35de6fa7 · fixed in 24f60ebabeb8757cec8ec2f97660d521bc9147ec; From 181d4daaefb3bceeb2f2635ba9f3781eeda9e550 · fixed in 6a760a53e73064735cdfa9e51c664983a89baf96; From ad82be4298a89a9ae46f07128bdf3d8614bce745 · fixed in 3f00999e44d9984036a029dbad9d2afe94a674d0; From e6411c3b9512dba09af7d014d474516828c89706 · fixed in 332591a245de978349a7558f8b20469951bb77cc; From c332f3e2df0fcae5a45fd55cc18902fb1e4825ca · fixed in 75f0bc167b96bbbef8182b88308c732af82c8d83; From e842f9a1edf306bf36fe2a4d847a0b0d458770de · fixed in 44a37264b26911e13d0a4f5630751c4157ed0354; From e842f9a1edf306bf36fe2a4d847a0b0d458770de · fixed in 530a9d5ef831a0049dad9a6b2b92d02301352c38; From e842f9a1edf306bf36fe2a4d847a0b0d458770de · fixed in b74030fbf187b43c1f85b66a7082e9946511cb5d; From 5.10.235 · fixed in 5.10.270; From 5.15.179 · fixed in 5.15.221; From 6.1.131 · fixed in 6.1.188; From 6.6.83 · fixed in 6.6.157; From 6.12.19 · fixed in 6.12.110; From 5.4.291 · fixed in 5.5; From 6.13.7 · fixed in 6.14
- Linux Linux
6.14
- KernelLinux
fixed in 5.10.270; From 5.11.0 · fixed in 5.15.221; From 5.16.0 · fixed in 6.1.188; From 6.2.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.110; From 6.13.0 · fixed in 6.18.52; From 6.14.0 · fixed in 7.2.6
References 8
git.kernel.org
- stable/c/24f60ebabeb8757cec8ec2f97660d521bc9147ec
- stable/c/6a760a53e73064735cdfa9e51c664983a89baf96
- stable/c/3f00999e44d9984036a029dbad9d2afe94a674d0
- stable/c/332591a245de978349a7558f8b20469951bb77cc
- stable/c/75f0bc167b96bbbef8182b88308c732af82c8d83
- stable/c/44a37264b26911e13d0a4f5630751c4157ed0354
- stable/c/530a9d5ef831a0049dad9a6b2b92d02301352c38
- stable/c/b74030fbf187b43c1f85b66a7082e9946511cb5d