CVE-2026-45866

HIGHNVD 7.87.8
EchelonGraph scoreMEDIUM confidence

Score 7.8 from GitHub Security Advisory (severity: HIGH) published 2026-05-27. NVD baseline CVSS 7.8; sources differ by 0.0.

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa, nvd
7.8
EchelonGraph verdictPlan a fixSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS: 0%CVSS: 7.8Exploit: NoneExposed: 0

No vendor fix yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for a patch.

In the Linux kernel, the following vulnerability has been resolved:

serial: caif: fix use-after-free in caif_serial ldisc_close()

There is a use-after-free bug in caif_serial where handle_tx() may access ser->tty after the tty has been freed.

The race condition occurs between ldisc_close() and packet transmission:

CPU 0 (close) CPU 1 (xmit) ------------- ------------ ldisc_close() tty_kref_put(ser->tty) [tty may be freed here] <-- race window --> caif_xmit() handle_tx() tty = ser->tty // dangling ptr tty->ops->write() // UAF! schedule_work() ser_release() unregister_netdevice()

The root cause is that tty_kref_put() is called in ldisc_close() while the network device is still active and can receive packets.

Since ser and tty have a 1:1 binding relationship with consistent lifecycles (ser is allocated in ldisc_open and freed in ser_release via unregister_netdevice, and each ser binds exactly one tty), we can safely defer the tty reference release to ser_release() where the network device is unregistered.

Fix this by moving tty_kref_put() from ldisc_close() to ser_release(), after unregister_netdevice(). This ensures the tty reference is held as long as the network device exists, preventing the UAF.

Note: We save ser->tty before unregister_netdevice() because ser is embedded in netdev's private data and will be freed along with netdev (needs_free_netdev = true).

How to reproduce: Add mdelay(500) at the beginning of ldisc_close() to widen the race window, then run the reproducer program [1].

Note: There is a separate deadloop issue in handle_tx() when using PORT_UNKNOWN serial ports (e.g., /dev/ttyS3 in QEMU without proper serial backend). This deadloop exists even without this patch, and is likely caused by inconsistency between uart_write_room() and uart_write() in serial core. It has been addressed in a separate patch [2].

KASAN report:

================================================================== BUG: KASAN: slab-use-after-free in handle_tx+0x5d1/0x620 Read of size 1 at addr ffff8881131e1490 by task caif_uaf_trigge/9929

Call Trace: dump_stack_lvl+0x10e/0x1f0 print_report+0xd0/0x630 kasan_report+0xe4/0x120 handle_tx+0x5d1/0x620 dev_hard_start_xmit+0x9d/0x6c0 __dev_queue_xmit+0x6e2/0x4410 packet_xmit+0x243/0x360 packet_sendmsg+0x26cf/0x5500 __sys_sendto+0x4a3/0x520 __x64_sys_sendto+0xe0/0x1c0 do_syscall_64+0xc9/0xf80 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f615df2c0d7

Allocated by task 9930:

Freed by task 64:

Last potentially related work creation:

The buggy address belongs to the object at ffff8881131e1000 which belongs to the cache kmalloc-cg-2k of size 2048 The buggy address is located 1168 bytes inside of freed 2048-byte region [ffff8881131e1000, ffff8881131e1800)

The buggy address belongs to the physical page: page_owner tracks the page as allocated page last free pid 9778 tgid 9778 stack trace:

Memory state around the buggy address: ffff8881131e1380: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff8881131e1400: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff8881131e1480: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ^ ffff8881131e1500: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff8881131e1580: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ================================================================== [1]: https://gist.github.com/mrpre/f683f244544f7b11e7fa87df9e6c2eeb [2]: https://lore.kernel.org/linux-serial/[email protected]/T/#u

CVSS v3
7.8
EG Score
7.8(medium)
EPSS
5.5%
KEV
Not listed

Published

May 27, 2026

Last Modified

June 25, 2026

Advisory Details (8)

Auto-updated Jun 25, 2026
No patch confirmed yet.
generic

serial: caif: fix use-after-free in caif_serial ldisc_close() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/d3c75db4e0460641dbcd274b40867e252d801da1
generic

serial: caif: fix use-after-free in caif_serial ldisc_close() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/c8c197aaa56b25a2d54f3aa07e27e228d6c08546
generic

serial: caif: fix use-after-free in caif_serial ldisc_close() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/5e266ba8d330d3b8e5bc198f238cd8901826cfa1
generic

serial: caif: fix use-after-free in caif_serial ldisc_close() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/52731ef4438155cea782fac74e547a327ab9e7c5
generic

serial: caif: fix use-after-free in caif_serial ldisc_close() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/4e63d6f68544ae5269ac9735ae5b69b59b5b8725
generic

serial: caif: fix use-after-free in caif_serial ldisc_close() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/40962f2bf8cdba63af23aec95ad3f49b689e58e2
generic

serial: caif: fix use-after-free in caif_serial ldisc_close() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/331e2b7051635780edea248dd08ae2026c126f4a
generic

serial: caif: fix use-after-free in caif_serial ldisc_close() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/308e7e4d0a846359685f40aade023aee7b27284c

Vendor Advisories for CVE-2026-45866(1)

These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.

Weakness Classification(1)

MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.

Data Freshness Timeline

(refreshed 6× in last 7d / 42× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

  1. 2026-07-20 17:08 UTCEPSS rescore
  2. 2026-07-19 14:31 UTCEPSS rescore
  3. 2026-07-19 02:29 UTCEPSS rescore
  4. 2026-07-16 17:03 UTCEPSS rescore
  5. 2026-07-15 16:57 UTCEPSS rescore
  6. 2026-07-15 02:00 UTCEPSS rescore
  7. 2026-07-13 22:30 UTCEPSS rescore
  8. 2026-07-13 06:13 UTCEPSS rescore
  9. 2026-07-12 05:46 UTCEPSS rescore
  10. 2026-07-11 08:27 UTCEPSS rescore
  11. 2026-07-09 19:10 UTCEPSS rescore
  12. 2026-07-09 00:26 UTCGHSA enrichment
  13. 2026-07-08 15:16 UTCEPSS rescore
  14. 2026-07-06 16:27 UTCEPSS rescore
  15. 2026-07-06 02:23 UTCEPSS rescore
  16. 2026-07-05 02:30 UTCEPSS rescore
  17. 2026-07-04 06:31 UTCEPSS rescore
  18. 2026-07-01 11:38 UTCGHSA enrichment
  19. 2026-06-30 23:22 UTCEPSS rescore
  20. 2026-06-30 04:28 UTCGHSA enrichment
  21. 2026-06-29 14:33 UTCGHSA enrichment
  22. 2026-06-29 14:06 UTCEPSS rescore
  23. 2026-06-29 14:06 UTCEPSS rescore
  24. 2026-06-28 21:25 UTCGHSA enrichment
  25. 2026-06-28 14:07 UTCEPSS rescore
Show 60 more
  1. 2026-06-28 06:53 UTCEG score recompute 7.80
  2. 2026-06-28 06:53 UTCGHSA enrichment
  3. 2026-06-28 04:56 UTCEPSS rescore
  4. 2026-06-28 04:56 UTCEPSS rescore
  5. 2026-06-27 03:08 UTCEPSS rescore
  6. 2026-06-25 21:50 UTCNVD updateCVSS v3 → 7.8 · severity → HIGH
  7. 2026-06-25 13:49 UTCEPSS rescore
  8. 2026-06-25 01:52 UTCGHSA enrichment
  9. 2026-06-24 14:05 UTCEPSS rescore
  10. 2026-06-23 21:33 UTCEPSS rescore
  11. 2026-06-23 21:33 UTCEPSS rescore
  12. 2026-06-22 14:25 UTCEPSS rescore
  13. 2026-06-22 14:25 UTCEPSS rescore
  14. 2026-06-21 14:56 UTCEPSS rescore
  15. 2026-06-21 14:56 UTCEPSS rescore
  16. 2026-06-21 01:59 UTCEPSS rescore
  17. 2026-06-21 01:59 UTCEPSS rescore
  18. 2026-06-19 19:26 UTCEPSS rescore
  19. 2026-06-19 19:26 UTCEPSS rescore
  20. 2026-06-18 17:52 UTCEPSS rescore
  21. 2026-06-18 17:52 UTCEPSS rescore
  22. 2026-06-17 17:53 UTCEPSS rescore
  23. 2026-06-17 01:15 UTCGHSA enrichment
  24. 2026-06-16 17:52 UTCEPSS rescore
  25. 2026-06-15 17:49 UTCEPSS rescore
  26. 2026-06-13 23:00 UTCEPSS rescore
  27. 2026-06-13 20:48 UTCGHSA enrichment
  28. 2026-06-12 23:12 UTCEPSS rescore
  29. 2026-06-12 23:12 UTCEPSS rescore
  30. 2026-06-11 14:00 UTCEPSS rescore
  31. 2026-06-10 22:18 UTCEPSS rescore
  32. 2026-06-10 15:03 UTCGHSA enrichment
  33. 2026-06-10 13:22 UTCEPSS rescore
  34. 2026-06-10 13:22 UTCEPSS rescore
  35. 2026-06-08 14:17 UTCEPSS rescore
  36. 2026-06-08 14:17 UTCEPSS rescore
  37. 2026-06-07 15:25 UTCEPSS rescore
  38. 2026-06-07 15:25 UTCEPSS rescore
  39. 2026-06-07 10:36 UTCGHSA enrichment
  40. 2026-06-06 13:47 UTCEPSS rescore
  41. 2026-06-06 13:47 UTCEPSS rescore
  42. 2026-06-05 22:47 UTCEPSS rescore
  43. 2026-06-05 06:10 UTCEPSS rescore
  44. 2026-06-05 06:10 UTCEPSS rescore
  45. 2026-06-04 13:12 UTCEPSS rescore
  46. 2026-06-04 13:12 UTCEPSS rescore
  47. 2026-06-04 06:10 UTCGHSA enrichment
  48. 2026-06-02 20:13 UTCEPSS rescore
  49. 2026-06-01 13:52 UTCEPSS rescore
  50. 2026-06-01 13:52 UTCEPSS rescore
  51. 2026-06-01 01:43 UTCGHSA enrichment
  52. 2026-05-31 22:30 UTCEPSS rescore
  53. 2026-05-31 22:30 UTCEPSS rescore
  54. 2026-05-31 00:16 UTCEPSS rescore
  55. 2026-05-31 00:16 UTCEPSS rescore
  56. 2026-05-29 13:44 UTCEPSS rescore
  57. 2026-05-29 13:44 UTCEPSS rescore
  58. 2026-05-28 13:44 UTCEPSS rescore
  59. 2026-05-28 13:44 UTCEPSS rescore
  60. 2026-05-27 14:19 UTCEG score recompute

Frequently asked(5)

What is CVE-2026-45866?
CVE-2026-45866 is a high vulnerability published on May 27, 2026. In the Linux kernel, the following vulnerability has been resolved: serial: caif: fix use-after-free in caifserial ldiscclose() There is a use-after-free bug in caifserial where handletx() may access ser->tty after the tty has been freed. The race condition occurs between ldisc_close() and packet…
When was CVE-2026-45866 disclosed?
CVE-2026-45866 was first published in the National Vulnerability Database on May 27, 2026, with the most recent update on June 25, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2026-45866 actively exploited?
CVE-2026-45866 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 5.5% percentile likelihood of exploitation in the next 30 days — higher percentiles indicate greater predicted risk.
What is the CVSS score of CVE-2026-45866?
CVE-2026-45866 has a CVSS v3 base score of 7.8 (NVD).
How do I remediate CVE-2026-45866?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2026-45866, EchelonGraph cross-links them in the Vendor Advisories panel below — those typically contain the canonical remediation steps, fixed version numbers, and any vendor-specific mitigations.

Dependency Blast Radius

Explore the affected products and dependency analysis for CVE-2026-45866

Explore →

Is Your Infrastructure Affected by CVE-2026-45866?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.