← Back to CVE Explorer

CVE-2023-54220

Full vulnerability record from the local CVENow database.

Description

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().

Severity
HIGH
CVSS score
7.8 (v3.1)
Vulnerability status
Deferred
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2025-12-30 13:16:10.300000
Last modified
2026-10-28 19:10:00.193000
View original CVE JSON
{
  "id": "CVE-2023-54220",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2025-12-30T13:16:10.300",
  "lastModified": "2026-10-28T19:10:00.193",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nserial: 8250: Fix oops for port->pm on uart_change_pm()\n\nUnloading a hardware specific 8250 driver can produce error \"Unable to\nhandle kernel paging request at virtual address\" about ten seconds after\nunloading the driver. This happens on uart_hangup() calling\nuart_change_pm().\n\nTurns out commit 04e82793f068 (\"serial: 8250: Reinit port->pm on port\nspecific driver unbind\") was only a partial fix. If the hardware specific\ndriver has initialized port->pm function, we need to clear port->pm too.\nJust reinitializing port->ops does not do this. Otherwise serial8250_pm()\nwill call port->pm() instead of serial8250_do_pm()."
    },
    {
      "lang": "es",
      "value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\nserial: 8250: Corrección de oops para port  ->  pm en uart_change_pm()\n\nLa descarga de un controlador 8250 específico de hardware puede producir el error ’Unable to handle kernel paging request at virtual address’ aproximadamente diez segundos después de descargar el controlador. Esto ocurre cuando uart_hangup() llama a uart_change_pm().\n\nResulta que el commit 04e82793f068 (’serial: 8250: Reiniciar port  ->  pm al desvincular el controlador específico del puerto’) fue solo una solución parcial. Si el controlador específico de hardware ha inicializado la función port  ->  pm, también necesitamos limpiar port  ->  pm. Solo reinicializar port  ->  ops no hace esto. De lo contrario, serial8250_pm() llamará a port  ->  pm() en lugar de serial8250_do_pm()."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/tty/serial/8250/8250_port.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "490bf37eaabb0a857ed1ae8e75d8854e41662f1c",
              "lessThan": "66f3e55960698c874b0598277913b478ecd29573",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "c9e080c3005fd183c56ff8f4d75edb5da0765d2c",
              "lessThan": "720a297b334e85d34099e83d1f375b92c3efedd6",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "d5cd2928d31042a7c0a01464f9a8d95be736421d",
              "lessThan": "b653289ca6460a6552c8590b75dfa84a0140a46b",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "2c86a1305c1406f45ea780d06953c484ea1d9e6e",
              "lessThan": "bd70d0b28010d560a8be96b44fea86fe2ba016ae",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "1ba5594739d858e524ff0f398ee1ebfe0a8b9d41",
              "lessThan": "18e27df4f2b4e257c317ba8076f31a888f6cc64b",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "af4d6dbb1a92ea424ad1ba1d0c88c7fa2345d872",
              "lessThan": "0c05493341d6f2097f75f0a5dbb7b53a9e8c5f6c",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "04e82793f068d2f0ffe62fcea03d007a8cdc16a7",
              "lessThan": "375806616f8c772c33d40e112530887b37c1a816",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "04e82793f068d2f0ffe62fcea03d007a8cdc16a7",
              "lessThan": "dfe2aeb226fd5e19b0ee795f4f6ed8bc494c1534",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "8e596aed5f2f98cf3e6e98d6fe1d689f4a319308",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "4.14.316",
              "lessThan": "4.14.324",
              "versionType": "semver",
              "status": "affected"
            },
            {
              "version": "4.19.284",
              "lessThan": "4.19.293",
              "versionType": "semver",
              "status": "affected"
            },
            {
              "version": "5.4.244",
              "lessThan": "5.4.255",
              "versionType": "semver",
              "status": "affected"
            },
            {
              "version": "5.10.181",
              "lessThan": "5.10.192",
              "versionType": "semver",
              "status": "affected"
            },
            {
              "version": "5.15.113",
              "lessThan": "5.15.128",
              "versionType": "semver",
              "status": "affected"
            },
            {
              "version": "6.1.30",
              "lessThan": "6.1.47",
              "versionType": "semver",
              "status": "affected"
            },
            {
              "version": "6.3.4",
              "lessThan": "6.4",
              "versionType": "semver",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/tty/serial/8250/8250_port.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "6.4",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "6.4",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "4.14.324",
              "lessThanOrEqual": "4.14.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "4.19.293",
              "lessThanOrEqual": "4.19.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.4.255",
              "lessThanOrEqual": "5.4.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.10.192",
              "lessThanOrEqual": "5.10.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.15.128",
              "lessThanOrEqual": "5.15.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.1.47",
              "lessThanOrEqual": "6.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.4.12",
              "lessThanOrEqual": "6.4.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.5",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
          "baseScore": 7.8,
          "baseSeverity": "HIGH",
          "attackVector": "LOCAL",
          "attackComplexity": "LOW",
          "privilegesRequired": "LOW",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "HIGH",
          "integrityImpact": "HIGH",
          "availabilityImpact": "HIGH"
        },
        "exploitabilityScore": 1.8,
        "impactScore": 5.9
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-10-15T21:39:29.518449Z",
          "id": "CVE-2023-54220",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "total"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/0c05493341d6f2097f75f0a5dbb7b53a9e8c5f6c",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/18e27df4f2b4e257c317ba8076f31a888f6cc64b",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/375806616f8c772c33d40e112530887b37c1a816",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/66f3e55960698c874b0598277913b478ecd29573",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/720a297b334e85d34099e83d1f375b92c3efedd6",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/b653289ca6460a6552c8590b75dfa84a0140a46b",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/bd70d0b28010d560a8be96b44fea86fe2ba016ae",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/dfe2aeb226fd5e19b0ee795f4f6ed8bc494c1534",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}