serial: 8250: Fix oops for port->pm on uart_change_pm()
- 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 4.14.324, 4.19.293, 5.4.255, 5.10.192, 5.15.128, and 3 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
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: serial: 8250: Fix oops for port->pm on uart_change_pm() Unloading a hardware specific 8250 driver can produce error "Unable to handle kernel paging request at virtual address" about ten seconds after unloading the driver. This happens on uart_hangup() calling uart_change_pm(). Turns out commit 04e82793f068 ("serial: 8250: Reinit port->pm on port specific driver unbind") was only a partial fix. If the hardware specific driver has initialized port->pm function, we need to clear port->pm too. Just reinitializing port->ops does not do this. Otherwise serial8250_pm() will call port->pm() instead of serial8250_do_pm().
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From 490bf37eaabb0a857ed1ae8e75d8854e41662f1c · fixed in 66f3e55960698c874b0598277913b478ecd29573; From c9e080c3005fd183c56ff8f4d75edb5da0765d2c · fixed in 720a297b334e85d34099e83d1f375b92c3efedd6; From d5cd2928d31042a7c0a01464f9a8d95be736421d · fixed in b653289ca6460a6552c8590b75dfa84a0140a46b; From 2c86a1305c1406f45ea780d06953c484ea1d9e6e · fixed in bd70d0b28010d560a8be96b44fea86fe2ba016ae; From 1ba5594739d858e524ff0f398ee1ebfe0a8b9d41 · fixed in 18e27df4f2b4e257c317ba8076f31a888f6cc64b; From af4d6dbb1a92ea424ad1ba1d0c88c7fa2345d872 · fixed in 0c05493341d6f2097f75f0a5dbb7b53a9e8c5f6c; From 04e82793f068d2f0ffe62fcea03d007a8cdc16a7 · fixed in 375806616f8c772c33d40e112530887b37c1a816; From 04e82793f068d2f0ffe62fcea03d007a8cdc16a7 · fixed in dfe2aeb226fd5e19b0ee795f4f6ed8bc494c1534; From 4.14.316 · fixed in 4.14.324; From 4.19.284 · fixed in 4.19.293; From 5.4.244 · fixed in 5.4.255; From 5.10.181 · fixed in 5.10.192; From 5.15.113 · fixed in 5.15.128; From 6.1.30 · fixed in 6.1.47; From 6.3.4 · fixed in 6.4
- Linux Linux
6.4
- KernelLinux
fixed in 4.14.324; From 4.15.0 · fixed in 4.19.293; From 4.20.0 · fixed in 5.4.255; From 5.5.0 · fixed in 5.10.192; From 5.11.0 · fixed in 5.15.128; From 5.16.0 · fixed in 6.1.47; From 6.2.0 · fixed in 6.4.12
References 8
git.kernel.org
- stable/c/66f3e55960698c874b0598277913b478ecd29573
- stable/c/720a297b334e85d34099e83d1f375b92c3efedd6
- stable/c/b653289ca6460a6552c8590b75dfa84a0140a46b
- stable/c/bd70d0b28010d560a8be96b44fea86fe2ba016ae
- stable/c/18e27df4f2b4e257c317ba8076f31a888f6cc64b
- stable/c/0c05493341d6f2097f75f0a5dbb7b53a9e8c5f6c
- stable/c/375806616f8c772c33d40e112530887b37c1a816
- stable/c/dfe2aeb226fd5e19b0ee795f4f6ed8bc494c1534