Skip to main content
← All vulnerabilities
CVE-2023-54220

serial: 8250: Fix oops for port->pm on uart_change_pm()

Published
Last modified
published
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
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

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: total

  3. 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