net: fec: handle page_pool_dev_alloc_pages error
- 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.1.167, 6.6.74, 6.12.11
- 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
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: net: fec: handle page_pool_dev_alloc_pages error The fec_enet_update_cbd function calls page_pool_dev_alloc_pages but did not handle the case when it returned NULL. There was a WARN_ON(!new_page) but it would still proceed to use the NULL pointer and then crash. This case does seem somewhat rare but when the system is under memory pressure it can happen. One case where I can duplicate this with some frequency is when writing over a smbd share to a SATA HDD attached to an imx6q. Setting /proc/sys/vm/min_free_kbytes to higher values also seems to solve the problem for my test case. But it still seems wrong that the fec driver ignores the memory allocation error and can crash. This commit handles the allocation error by dropping the current packet.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From 95698ff6177b5f1f13f251da60e7348413046ae4 · fixed in eacdcc14f3c8d4c1447565521e792ddb3a67e08d; From 95698ff6177b5f1f13f251da60e7348413046ae4 · fixed in 8a0097db0544b658c159ac787319737712063a23; From 95698ff6177b5f1f13f251da60e7348413046ae4 · fixed in 1425cb829556398f594658512d49292f988a2ab0; From 95698ff6177b5f1f13f251da60e7348413046ae4 · fixed in 001ba0902046cb6c352494df610718c0763e77a5
- Linux Linux
6.1
- KernelLinux
From 6.1.0 · fixed in 6.1.167; From 6.2.0 · fixed in 6.6.74; From 6.7.0 · fixed in 6.12.11