← Back to CVE Explorer

CVE-2026-89740

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: serial: imx: serialize imx_uart_ports[] lifetime imx_uart_probe() publishes its devm-allocated port in imx_uart_ports[] before uart_add_one_port() because console setup uses the table. The entry is not cleared when adding the port fails or after removal, leaving a dangling pointer. A sibling probe can register the shared console through that stale entry. This was reproduced under KASAN on QEMU mcimx6ul-evk by unbinding a sibling UART, unbinding the console UART and rebinding the sibling. Keep the entry valid through uart_remove_one_port(), then clear it. Protect port addition and removal together with their table updates so sibling operations cannot interleave. Reject an occupied slot rather than clobbering an active port during a duplicate-line probe.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-09-11 20:20:04.597000
Last modified
2026-10-30 13:20:27.883000
View original CVE JSON
{
  "id": "CVE-2026-89740",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-09-11T20:20:04.597",
  "lastModified": "2026-10-30T13:20:27.883",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nserial: imx: serialize imx_uart_ports[] lifetime\n\nimx_uart_probe() publishes its devm-allocated port in imx_uart_ports[]\nbefore uart_add_one_port() because console setup uses the table. The entry\nis not cleared when adding the port fails or after removal, leaving a\ndangling pointer.\n\nA sibling probe can register the shared console through that stale entry.\nThis was reproduced under KASAN on QEMU mcimx6ul-evk by unbinding a\nsibling UART, unbinding the console UART and rebinding the sibling.\n\nKeep the entry valid through uart_remove_one_port(), then clear it. Protect\nport addition and removal together with their table updates so sibling\noperations cannot interleave. Reject an occupied slot rather than\nclobbering an active port during a duplicate-line probe."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/tty/serial/imx.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "dbff4e9ea2e83fda89143389bfb229cb29425a32",
              "lessThan": "ce9c074868d5c8adfb0c72de4324138d6fa1a1a8",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "dbff4e9ea2e83fda89143389bfb229cb29425a32",
              "lessThan": "a4acf2739434a014cdfc282175cffd3e35a97fa4",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "dbff4e9ea2e83fda89143389bfb229cb29425a32",
              "lessThan": "abc17fd508a511669997e48f8b014d8aa043abdf",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "dbff4e9ea2e83fda89143389bfb229cb29425a32",
              "lessThan": "681696ae9e4a28bdf54893c807dfe4a6c08e30a5",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "dbff4e9ea2e83fda89143389bfb229cb29425a32",
              "lessThan": "28b932202fcdbeb2ef58d89ce4363f480433c234",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "dbff4e9ea2e83fda89143389bfb229cb29425a32",
              "lessThan": "7429dce56a73bc080a8c072edb167106f73a08ae",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "dbff4e9ea2e83fda89143389bfb229cb29425a32",
              "lessThan": "8b0b29fdcb47907ae0296b8fe829e918e05e300f",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/tty/serial/imx.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "2.6.27",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "2.6.27",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.15.224",
              "lessThanOrEqual": "5.15.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.1.191",
              "lessThanOrEqual": "6.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.6.160",
              "lessThanOrEqual": "6.6.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.12.109",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.50",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2.4",
              "lessThanOrEqual": "7.2.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.3",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/28b932202fcdbeb2ef58d89ce4363f480433c234",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/681696ae9e4a28bdf54893c807dfe4a6c08e30a5",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/7429dce56a73bc080a8c072edb167106f73a08ae",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/8b0b29fdcb47907ae0296b8fe829e918e05e300f",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/a4acf2739434a014cdfc282175cffd3e35a97fa4",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/abc17fd508a511669997e48f8b014d8aa043abdf",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/ce9c074868d5c8adfb0c72de4324138d6fa1a1a8",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}