CVE-2026-63803

HIGHPre-NVD 7.87.8
EchelonGraph scoreMEDIUM confidence

Score 7.8 from GitHub Security Advisory (severity: HIGH) published 2026-07-19. a secondary CVSS source baseline 7.8; sources differ by 0.0.

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa, secondary
Trending — 4 sources updated this week
7.8EG
EchelonGraph verdictPlan a fixSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS PROB: 0%CVSS: 7.8Exploit: None knownExposed: 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:

hdlc_ppp: sync per-proto timers before freeing hdlc state

Each PPP control protocol (LCP/IPCP/IPV6CP) embedded in struct ppp registers a timer via timer_setup(). That struct ppp is the hdlc->state allocation, which detach_hdlc_protocol() frees with kfree() in both teardown paths: unregister_hdlc_device() and the re-attach inside attach_hdlc_protocol().

The ppp proto never registered a .detach callback, so detach_hdlc_protocol() performs no timer synchronization before the kfree(). The only cancel, timer_delete(&proto->timer) in ppp_cp_event(), is partial (it does not wait for a running callback) and only runs on the ->CLOSED transition; ppp_stop()/ppp_close() do not sync either. A ppp_timer callback already executing (blocked on ppp->lock) survives the kfree and then dereferences proto->state / ppp->lock in freed memory, leading to a use-after-free.

Fix this by adding a .detach helper that calls timer_shutdown_sync() on every per-proto timer. detach_hdlc_protocol() invokes proto->detach(dev) before kfree(hdlc->state), so timer_shutdown_sync() now runs on both free paths. timer_shutdown_sync() is used instead of timer_delete_sync() because the keepalive path re-arms the timer through add_timer()/mod_timer() and shutdown blocks any re-activation during teardown.

Initialize the per-protocol timers in ppp_ioctl() when the protocol is attached, and remove the now-redundant timer_setup() from ppp_start(), so that the timers are initialized exactly once at attach time and ppp_timer_release() never operates on uninitialized timer_list structures. attach_hdlc_protocol() uses kmalloc() (not kzalloc), so struct ppp's protos[i].timer is uninitialized garbage until the first timer_setup(); without this init-at-attach, attaching the PPP protocol without ever bringing the device up would leave timer_shutdown_sync() operating on uninitialized memory in .detach. Moving the init out of ppp_start() (which only runs on NETDEV_UP) into the attach path makes the initialization unconditional and avoids initializing the same timer_list twice.

This bug was found by static analysis.

CVSS v3
7.8
EG Score
7.8(medium)
EG Risk
40(Track)
EG Risk 40/100SSVC: Track

EG Risk is EchelonGraph's 0–100 priority score: it fuses intrinsic severity with real-world exploitation and automatability so you can rank equal-severity CVEs and fix the most dangerous first. Higher = act sooner. Distinct from the 0–10 EG Score (severity).

How it’s computed
Severity78% × 45%
Exploitation0% × 40%
Automatability30% × 15%
Action: Routine — remediate on your standard cadence.
EPSS PROB
0%
EPSS %ILE
3%
KEV
Not listed

Published

July 19, 2026

Last Modified

August 17, 2026

Advisory Details (7)

Auto-updated Jul 21, 2026
No patch confirmed yet.
generic

hdlc_ppp: sync per-proto timers before freeing hdlc state - kernel/git/stable/linux.git - Linux kernel stable tree

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

hdlc_ppp: sync per-proto timers before freeing hdlc state - kernel/git/stable/linux.git - Linux kernel stable tree

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

hdlc_ppp: sync per-proto timers before freeing hdlc state - kernel/git/stable/linux.git - Linux kernel stable tree

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

hdlc_ppp: sync per-proto timers before freeing hdlc state - kernel/git/stable/linux.git - Linux kernel stable tree

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

hdlc_ppp: sync per-proto timers before freeing hdlc state - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/8308122bc9c065b1f376e081ed300129a2ac9545
generic

hdlc_ppp: sync per-proto timers before freeing hdlc state - kernel/git/stable/linux.git - Linux kernel stable tree

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

hdlc_ppp: sync per-proto timers before freeing hdlc state - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/508a0139d3bf60f6a03d2fbfb63a89a9463d983a

Vendor Advisories for CVE-2026-63803(2)

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

Affected Packages

(5 across 4 ecosystems)
Debian:11(2)
PackageVulnerable rangeFixed inDependents
linux5.10.103-1 ... 5.10.92-2 (55 versions)5.10.262-1
linux-6.16.1.106-3~deb11u1 ... 6.1.176-1~deb11u1 (21 versions)6.1.177-1~deb11u1
Debian:12(1)
PackageVulnerable rangeFixed inDependents
linux6.1.106-1 ... 6.1.99-1 (54 versions)6.1.177-1
Debian:13(1)
PackageVulnerable rangeFixed inDependents
linux6.12.38-1 ... 6.12.95-1~bpo12+1 (29 versions)6.12.95-1
Debian:14(1)
PackageVulnerable rangeFixed inDependents
linux6.12.100-1 ... 7.1~rc7-1~exp1 (153 versions)7.1.3-1

Weakness Classification(1)

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

Data Freshness Timeline

(refreshed 32× in last 7d / 136× 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.

Showing the most recent 100 of 179 total refreshes for this CVE.

  1. 2026-08-30 03:03 UTCEG score recompute
  2. 2026-08-30 03:03 UTCVendor advisory
  3. 2026-08-30 03:03 UTCGHSA enrichment
  4. 2026-08-30 01:22 UTCEPSS rescore
  5. 2026-08-28 21:42 UTCEPSS rescore
  6. 2026-08-28 02:27 UTCEG score recompute
  7. 2026-08-28 02:27 UTCVendor advisory
  8. 2026-08-28 02:27 UTCGHSA enrichment
  9. 2026-08-27 14:25 UTCEPSS rescore
  10. 2026-08-27 14:03 UTCGHSA enrichment
  11. 2026-08-27 01:52 UTCEG score recompute
  12. 2026-08-27 01:52 UTCVendor advisory
  13. 2026-08-27 01:52 UTCGHSA enrichment
  14. 2026-08-26 14:46 UTCEPSS rescore
  15. 2026-08-26 13:42 UTCVendor advisory
  16. 2026-08-26 13:42 UTCGHSA enrichment
  17. 2026-08-26 01:23 UTCEG score recompute
  18. 2026-08-26 01:23 UTCVendor advisory
  19. 2026-08-26 01:23 UTCGHSA enrichment
  20. 2026-08-25 13:49 UTCEPSS rescore
  21. 2026-08-25 13:13 UTCVendor advisory
  22. 2026-08-25 13:13 UTCGHSA enrichment
  23. 2026-08-25 01:03 UTCEG score recompute
  24. 2026-08-25 01:03 UTCVendor advisory
  25. 2026-08-25 01:03 UTCGHSA enrichment
Show 75 more
  1. 2026-08-24 12:52 UTCEG score recompute
  2. 2026-08-24 12:52 UTCVendor advisory
  3. 2026-08-24 12:52 UTCGHSA enrichment
  4. 2026-08-24 00:42 UTCVendor advisory
  5. 2026-08-24 00:42 UTCGHSA enrichment
  6. 2026-08-23 12:32 UTCVendor advisory
  7. 2026-08-23 12:32 UTCGHSA enrichment
  8. 2026-08-23 00:22 UTCEG score recompute
  9. 2026-08-23 00:22 UTCVendor advisory
  10. 2026-08-23 00:22 UTCGHSA enrichment
  11. 2026-08-23 00:19 UTCEPSS rescore
  12. 2026-08-22 12:11 UTCVendor advisory
  13. 2026-08-22 12:11 UTCGHSA enrichment
  14. 2026-08-21 23:58 UTCEG score recompute
  15. 2026-08-21 23:58 UTCVendor advisory
  16. 2026-08-21 23:58 UTCGHSA enrichment
  17. 2026-08-21 23:49 UTCEPSS rescore
  18. 2026-08-21 11:47 UTCVendor advisory
  19. 2026-08-21 11:47 UTCGHSA enrichment
  20. 2026-08-20 23:36 UTCEG score recompute
  21. 2026-08-20 23:36 UTCVendor advisory
  22. 2026-08-20 23:36 UTCGHSA enrichment
  23. 2026-08-20 22:55 UTCEPSS rescore
  24. 2026-08-20 11:26 UTCVendor advisory
  25. 2026-08-20 11:26 UTCGHSA enrichment
  26. 2026-08-19 23:15 UTCEG score recompute
  27. 2026-08-19 23:15 UTCVendor advisory
  28. 2026-08-19 23:15 UTCGHSA enrichment
  29. 2026-08-19 17:04 UTCEPSS rescore
  30. 2026-08-19 08:02 UTCVendor advisory
  31. 2026-08-19 08:02 UTCGHSA enrichment
  32. 2026-08-18 19:51 UTCEG score recompute
  33. 2026-08-18 19:51 UTCVendor advisory
  34. 2026-08-18 19:51 UTCGHSA enrichment
  35. 2026-08-18 05:54 UTCGHSA enrichment
  36. 2026-08-17 17:35 UTCEG score recompute
  37. 2026-08-17 17:35 UTCVendor advisory
  38. 2026-08-17 17:35 UTCGHSA enrichment
  39. 2026-08-17 13:47 UTCEPSS rescore
  40. 2026-08-17 05:23 UTCVendor advisory
  41. 2026-08-17 05:23 UTCGHSA enrichment
  42. 2026-08-16 17:21 UTCEG score recompute
  43. 2026-08-16 17:21 UTCVendor advisory
  44. 2026-08-16 17:21 UTCGHSA enrichment
  45. 2026-08-16 14:56 UTCEPSS rescore
  46. 2026-08-16 05:08 UTCEG score recompute
  47. 2026-08-16 05:08 UTCVendor advisory
  48. 2026-08-16 05:08 UTCGHSA enrichment
  49. 2026-08-15 16:58 UTCVendor advisory
  50. 2026-08-15 16:58 UTCGHSA enrichment
  51. 2026-08-15 04:48 UTCEG score recompute
  52. 2026-08-15 04:48 UTCVendor advisory
  53. 2026-08-15 04:48 UTCGHSA enrichment
  54. 2026-08-15 01:30 UTCEPSS rescore
  55. 2026-08-14 16:37 UTCGHSA enrichment
  56. 2026-08-14 04:25 UTCEG score recompute
  57. 2026-08-14 04:25 UTCGHSA enrichment
  58. 2026-08-13 22:00 UTCEPSS rescore
  59. 2026-08-13 16:14 UTCGHSA enrichment
  60. 2026-08-13 04:04 UTCGHSA enrichment
  61. 2026-08-12 15:54 UTCEG score recompute
  62. 2026-08-12 15:54 UTCGHSA enrichment
  63. 2026-08-12 13:51 UTCEPSS rescore
  64. 2026-08-12 03:44 UTCGHSA enrichment
  65. 2026-08-11 15:34 UTCEG score recompute
  66. 2026-08-11 15:34 UTCGHSA enrichment
  67. 2026-08-11 03:23 UTCEG score recompute
  68. 2026-08-11 03:23 UTCGHSA enrichment
  69. 2026-08-11 00:00 UTCEPSS rescore
  70. 2026-08-10 15:13 UTCGHSA enrichment
  71. 2026-08-10 03:02 UTCGHSA enrichment
  72. 2026-08-09 14:52 UTCEG score recompute
  73. 2026-08-09 14:52 UTCGHSA enrichment
  74. 2026-08-09 13:47 UTCEPSS rescore
  75. 2026-08-09 02:42 UTCEG score recompute

Frequently asked(5)

What is CVE-2026-63803?
CVE-2026-63803 is a high vulnerability published on July 19, 2026. In the Linux kernel, the following vulnerability has been resolved: hdlc_ppp: sync per-proto timers before freeing hdlc state Each PPP control protocol (LCP/IPCP/IPV6CP) embedded in struct ppp registers a timer via timer_setup(). That struct ppp is the hdlc->state allocation, which…
When was CVE-2026-63803 disclosed?
CVE-2026-63803 was first published in the National Vulnerability Database on July 19, 2026, with the most recent update on August 17, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2026-63803 actively exploited?
CVE-2026-63803 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 0% probability of exploitation in the next 30 days, which ranks it in the top 96.9% of all scored CVEs.
What is the CVSS score of CVE-2026-63803?
CVE-2026-63803 has a CVSS v3 base score of 7.8 (NVD).
How do I remediate CVE-2026-63803?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2026-63803, 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

See which npm, PyPI, Go, and Maven packages are affected by CVE-2026-63803

Explore →

Is Your Infrastructure Affected by CVE-2026-63803?

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