{"api_version":"1","generated_at":"2026-09-12T12:18:18+00:00","cve":"CVE-2026-89740","urls":{"html":"https://cve.report/CVE-2026-89740","api":"https://cve.report/api/cve/CVE-2026-89740.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-89740","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-89740"},"summary":{"title":"serial: imx: serialize imx_uart_ports[] lifetime","description":"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.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-09-11 20:20:04","updated_at":"2026-09-11 20:20:04"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/681696ae9e4a28bdf54893c807dfe4a6c08e30a5","name":"https://git.kernel.org/stable/c/681696ae9e4a28bdf54893c807dfe4a6c08e30a5","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/8b0b29fdcb47907ae0296b8fe829e918e05e300f","name":"https://git.kernel.org/stable/c/8b0b29fdcb47907ae0296b8fe829e918e05e300f","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/28b932202fcdbeb2ef58d89ce4363f480433c234","name":"https://git.kernel.org/stable/c/28b932202fcdbeb2ef58d89ce4363f480433c234","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/7429dce56a73bc080a8c072edb167106f73a08ae","name":"https://git.kernel.org/stable/c/7429dce56a73bc080a8c072edb167106f73a08ae","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-89740","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-89740","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected dbff4e9ea2e83fda89143389bfb229cb29425a32 681696ae9e4a28bdf54893c807dfe4a6c08e30a5 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected dbff4e9ea2e83fda89143389bfb229cb29425a32 28b932202fcdbeb2ef58d89ce4363f480433c234 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected dbff4e9ea2e83fda89143389bfb229cb29425a32 7429dce56a73bc080a8c072edb167106f73a08ae git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected dbff4e9ea2e83fda89143389bfb229cb29425a32 8b0b29fdcb47907ae0296b8fe829e918e05e300f git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 2.6.27","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 2.6.27 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.109 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.50 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2.4 7.2.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.3-rc1 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["drivers/tty/serial/imx.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"681696ae9e4a28bdf54893c807dfe4a6c08e30a5","status":"affected","version":"dbff4e9ea2e83fda89143389bfb229cb29425a32","versionType":"git"},{"lessThan":"28b932202fcdbeb2ef58d89ce4363f480433c234","status":"affected","version":"dbff4e9ea2e83fda89143389bfb229cb29425a32","versionType":"git"},{"lessThan":"7429dce56a73bc080a8c072edb167106f73a08ae","status":"affected","version":"dbff4e9ea2e83fda89143389bfb229cb29425a32","versionType":"git"},{"lessThan":"8b0b29fdcb47907ae0296b8fe829e918e05e300f","status":"affected","version":"dbff4e9ea2e83fda89143389bfb229cb29425a32","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["drivers/tty/serial/imx.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"2.6.27"},{"lessThan":"2.6.27","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.109","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.50","versionType":"semver"},{"lessThanOrEqual":"7.2.*","status":"unaffected","version":"7.2.4","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.3-rc1","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.109","versionStartIncluding":"2.6.27","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.50","versionStartIncluding":"2.6.27","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2.4","versionStartIncluding":"2.6.27","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.3-rc1","versionStartIncluding":"2.6.27","vulnerable":true}],"negate":false,"operator":"OR"}]}],"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."}],"providerMetadata":{"dateUpdated":"2026-09-11T19:46:47.250Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/681696ae9e4a28bdf54893c807dfe4a6c08e30a5"},{"url":"https://git.kernel.org/stable/c/28b932202fcdbeb2ef58d89ce4363f480433c234"},{"url":"https://git.kernel.org/stable/c/7429dce56a73bc080a8c072edb167106f73a08ae"},{"url":"https://git.kernel.org/stable/c/8b0b29fdcb47907ae0296b8fe829e918e05e300f"}],"title":"serial: imx: serialize imx_uart_ports[] lifetime","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-89740","datePublished":"2026-09-11T19:46:47.250Z","dateReserved":"2026-09-11T19:38:34.761Z","dateUpdated":"2026-09-11T19:46:47.250Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-09-11 20:20:04","lastModifiedDate":"2026-09-11 20:20:04","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"89740","Ordinal":"1","Title":"serial: imx: serialize imx_uart_ports[] lifetime","CVE":"CVE-2026-89740","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"89740","Ordinal":"1","NoteData":"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.","Type":"Description","Title":"serial: imx: serialize imx_uart_ports[] lifetime"}]}}}