Expired Pointer Dereference Affecting bpftool6.18-debuginfo package, versions <1:6.18.54-121.166.amzn2023


Severity

Recommended
0.0
high
0
10

Based on Amazon Linux security rating.

Threat Intelligence

EPSS
0.12% (2nd percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-AMZN2023-BPFTOOL618DEBUGINFO-21424823
  • published22 Oct 2026
  • disclosed6 Oct 2026

Introduced: 6 Oct 2026

NewCVE-2026-98230  (opens in a new tab)
CWE-825  (opens in a new tab)

How to fix?

Upgrade Amazon-Linux:2023 bpftool6.18-debuginfo to version 1:6.18.54-121.166.amzn2023 or higher.
This issue was patched in ALAS2023-2026-3192.

NVD Description

Note: Versions mentioned in the description apply only to the upstream bpftool6.18-debuginfo package and not the bpftool6.18-debuginfo package as distributed by Amazon-Linux. See How to fix? for Amazon-Linux:2023 relevant fixed versions and status.

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

xfrm: use hlist_del_init_rcu for state_cache and state_cache_input

Commit 14acf9652e56 ("xfrm: defensively unhash xfrm_state lists in __xfrm_state_delete") converted bydst/bysrc/byseq/byspi from hlist_del_rcu() to hlist_del_init_rcu() so that a second __xfrm_state_delete() on the same object becomes a no-op rather than a write through LIST_POISON pprev. It missed state_cache and state_cache_input, which kept hlist_del_rcu():

  • hlist_del_rcu() leaves pprev = LIST_POISON2 (non-NULL), so hlist_unhashed() returns false.
  • hlist_del_init_rcu() leaves pprev = NULL, so hlist_unhashed() returns true.

A second __xfrm_state_delete() therefore enters __hlist_del() on the already-deleted state_cache/state_cache_input nodes and does WRITE_ONCE(*pprev, next) through LIST_POISON2 — a write use-after-free once the slab is reused. The corruption can in turn cause a subsequent hlist_for_each_entry_rcu traversal to follow a dangling next pointer, producing the read use-after-free reported in xfrm_input_state_lookup().

Switch state_cache and state_cache_input to hlist_del_init_rcu() to match the other four lists, closing the write use-after-free and, with it, the read use-after-free it spawns.

CVSS Base Scores

version 3.1