CVE-2026-98380
Description
In the Linux kernel, the following vulnerability has been resolved: net/sched: reject IDR error pointers when deleting actions tcf_action_delete() drops the reference held by its lookup before calling tcf_idr_delete_index() with the saved action index. An unlocked classifier can remove that action and reserve the same IDR slot with ERR_PTR(-EBUSY) in between. tcf_idr_delete_index() only checks the lookup result for NULL. It therefore treats the reservation as a tc_action and dereferences tcfa_bindcnt. A hardware execution breakpoint was used to schedule the interleaving without changing the kernel source. KASAN reported this decoded trace: BUG: KASAN: null-ptr-deref in tca_action_gd+0x5b9/0x1010 Read of size 4 at addr 0000000000000010 by task poc/150 Oops: general protection fault, probably for non-canonical address 0xdffffc0000000002 RIP: tca_action_gd+0x5c0/0x1010: arch_atomic_read at arch/x86/include/asm/atomic.h:23 raw_atomic_read at include/linux/atomic/atomic-arch-fallback.h:457 atomic_read at include/linux/atomic/atomic-instrumented.h:33 tcf_idr_delete_index at net/sched/act_api.c:766 tcf_action_delete at net/sched/act_api.c:1859 tcf_del_notify at net/sched/act_api.c:2014 tca_action_gd at net/sched/act_api.c:2064 R13: 0000000000000010 R15: fffffffffffffff0 Kernel panic - not syncing: Fatal exception R15 contains ERR_PTR(-EBUSY), and adding the tcfa_bindcnt offset produces the address in R13. With the guard applied, the same reproducer returned -ENOENT without a KASAN report or panic. Treat error pointers as absent and return -ENOENT.
How to fix
- Linux Linux39b751a210bf61a374afa82749afc7a77a08bf1d, dd80a7519824b72c8fcfd3cc50cb93f7e2d90923, 6bf076258aac4e0af69ef317656c31ce6444d647, 6c9f07bf8800171de2cd3f02815cebe1f4d45f2d, 259caa711b7688365676442e2fdb286b8aceaa80, 968550a439f64bd1a6c0d88efb92e4f082f84a26, a9551f26287debe6d8aa6e8841974661065b975f, c82b797abe668d0b668601a93ba2c0b071a63574 or later
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| Linux Linux | 0190c1d452a91c38a3462abdd81752be1b9006a8 ≤ v < 39b751a210bf61a374afa82749afc7a77a08bf1d, 0190c1d452a91c38a3462abdd81752be1b9006a8 ≤ v < dd80a7519824b72c8fcfd3cc50cb93f7e2d90923, 0190c1d452a91c38a3462abdd81752be1b9006a8 ≤ v < 6bf076258aac4e0af69ef317656c31ce6444d647, 0190c1d452a91c38a3462abdd81752be1b9006a8 ≤ v < 6c9f07bf8800171de2cd3f02815cebe1f4d45f2d, 0190c1d452a91c38a3462abdd81752be1b9006a8 ≤ v < 259caa711b7688365676442e2fdb286b8aceaa80, 0190c1d452a91c38a3462abdd81752be1b9006a8 ≤ v < 968550a439f64bd1a6c0d88efb92e4f082f84a26, 0190c1d452a91c38a3462abdd81752be1b9006a8 ≤ v < a9551f26287debe6d8aa6e8841974661065b975f, 0190c1d452a91c38a3462abdd81752be1b9006a8 ≤ v < c82b797abe668d0b668601a93ba2c0b071a63574, 4.19 | 39b751a210bf61a374afa82749afc7a77a08bf1d, dd80a7519824b72c8fcfd3cc50cb93f7e2d90923, 6bf076258aac4e0af69ef317656c31ce6444d647, 6c9f07bf8800171de2cd3f02815cebe1f4d45f2d, 259caa711b7688365676442e2fdb286b8aceaa80, 968550a439f64bd1a6c0d88efb92e4f082f84a26, a9551f26287debe6d8aa6e8841974661065b975f, c82b797abe668d0b668601a93ba2c0b071a63574 |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.