nexthop: initialize extack in nh_res_bucket_migrate()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.15.216, 6.1.183, 6.6.148, 6.12.101, 6.18.42, and 1 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: nexthop: initialize extack in nh_res_bucket_migrate() nh_res_bucket_migrate() passes an uninitialized netlink_ext_ack to call_nexthop_res_bucket_notifiers(). When nh_notifier_res_bucket_info_init() fails (e.g. the kzalloc returns -ENOMEM), the error is propagated back before any notifier sets extack._msg, and the error path formats the stale pointer with pr_err_ratelimited("%s\n", extack._msg). With CONFIG_INIT_STACK_NONE this dereferences uninitialized stack memory: Oops: general protection fault, probably for non-canonical address ... KASAN: maybe wild-memory-access in range [...] RIP: 0010:string (lib/vsprintf.c:730) vsnprintf (lib/vsprintf.c:2945) _printk (kernel/printk/printk.c:2504) nh_res_bucket_migrate (net/ipv4/nexthop.c:1816) nh_res_table_upkeep (net/ipv4/nexthop.c:1866) rtm_new_nexthop (net/ipv4/nexthop.c:3323) rtnetlink_rcv_msg (net/core/rtnetlink.c:7076) netlink_sendmsg (net/netlink/af_netlink.c:1900) Kernel panic - not syncing: Fatal exception Zero-initialize extack so _msg is NULL on error paths that never set it.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From 7c37c7e00411b3d1e0c5292368317aca69d1f324 · fixed in eacd2e2117e8682f937967fda1022e7f1c22d91a; From 7c37c7e00411b3d1e0c5292368317aca69d1f324 · fixed in 37bbd7e1d8df0bec3d187e961783e20c30533d2c; From 7c37c7e00411b3d1e0c5292368317aca69d1f324 · fixed in c0936c131a71657afc635d0db2ab096d15d473e1; From 7c37c7e00411b3d1e0c5292368317aca69d1f324 · fixed in 3081702ea5aca0aeed9c1ade8eadf6cde8db6b7d; From 7c37c7e00411b3d1e0c5292368317aca69d1f324 · fixed in d536bf205c71f700f6de2086038c3e1d77724715; From 7c37c7e00411b3d1e0c5292368317aca69d1f324 · fixed in 18506d7263768d76ac8e057ba55a4d9da50aad66; From 7c37c7e00411b3d1e0c5292368317aca69d1f324 · fixed in 6347c5314cee49f364aaf2e40ff15415a57a116e
- Linux Linux
5.13
- KernelLinux
From 5.13.0 · fixed in 5.15.216; From 5.16.0 · fixed in 6.1.183; From 6.2.0 · fixed in 6.6.148; From 6.7.0 · fixed in 6.12.101; From 6.13.0 · fixed in 6.18.42; From 6.19.0 · fixed in 7.1.6
References 7
git.kernel.org
- stable/c/eacd2e2117e8682f937967fda1022e7f1c22d91a
- stable/c/37bbd7e1d8df0bec3d187e961783e20c30533d2c
- stable/c/c0936c131a71657afc635d0db2ab096d15d473e1
- stable/c/3081702ea5aca0aeed9c1ade8eadf6cde8db6b7d
- stable/c/d536bf205c71f700f6de2086038c3e1d77724715
- stable/c/18506d7263768d76ac8e057ba55a4d9da50aad66
- stable/c/6347c5314cee49f364aaf2e40ff15415a57a116e