serial: core: do fallible allocations before the console can be registered
- 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.160, 6.12.114, 6.18.57, 7.2.6
- 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: serial: core: do fallible allocations before the console can be registered serial_core_add_one_port() allocates uport->tty_groups after uart_configure_port(), which may register the console. If the allocation fails, the driver unwinds the port while its console remains registered. The earlier uport->name allocation has a related failure path that leaves state->uart_port linked to a port being freed. Failslab reproduced a NULL dereference in PL011 console output and a KASAN use-after-free in i.MX console output after failed binds. Allocate the name and tty_groups before linking the port and configuring it. Reserve space for the optional driver attribute group because config_port() may populate uport->attr_group during configuration.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 266dcff03eed0050b6af11aaf2a61ab837d7ba3f · fixed in e2ddbfd826836cba1b7a25ee4eb512f7d752b703; From 266dcff03eed0050b6af11aaf2a61ab837d7ba3f · fixed in 8c7c75bfa7b84d6999de2100ce9c09e3779249a0; From 266dcff03eed0050b6af11aaf2a61ab837d7ba3f · fixed in 9260a92ce90e6a95ce2ffdf1441c5216bf3f9552; From 266dcff03eed0050b6af11aaf2a61ab837d7ba3f · fixed in c2aec15f78b2e6ccd9b94216a901248511355982; From 266dcff03eed0050b6af11aaf2a61ab837d7ba3f · fixed in 1a0e4fbce5d9c1bc179a35a2fd9ed142664299e3
- Linux Linux
3.17
- KernelLinux
From 3.17.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.114; From 6.13.0 · fixed in 6.18.57; From 6.19.0 · fixed in 7.2.6