CVE-2026-31429: net: skb: fix cross-cache free of KFENCE-allocated skb head
Vulnerability summary
CVE-2026-31429 is a medium (CVSS 5.5) vulnerability in linux. EPSS estimates a 0.26% chance of exploitation in the next 30 days, higher than 17.7% of scored vulnerabilities.
Not severe (CVSS 5.5, local access); no exploitation reported by the 5 checked sources
Source freshness unavailable
How is this decided?Advisory lineage
Upstream 0 · Downstream 25 · Related 25Timeline
- 20-04-2026PublishedVulnerability first disclosed.
- 11-05-2026Last modifiedVulnerability information updated.
Description
In the Linux kernel, the following vulnerability has been resolved: net: skb: fix cross-cache free of KFENCE-allocated skb head SKB_SMALL_HEAD_CACHE_SIZE is intentionally set to a non-power-of-2 value (e.g. 704 on x86_64) to avoid collisions with generic kmalloc bucket sizes. This ensures that skb_kfree_head() can reliably use skb_end_offset to distinguish skb heads allocated from skb_small_head_cache vs. generic kmalloc caches. However, when KFENCE is enabled, kfence_ksize() returns the exact requested allocation size instead of the slab bucket size. If a caller (e.g. bpf_test_init) allocates skb head data via kzalloc() and the requested size happens to equal SKB_SMALL_HEAD_CACHE_SIZE, then slab_build_skb() -> ksize() returns that exact value. After subtracting skb_shared_info overhead, skb_end_offset ends up matching SKB_SMALL_HEAD_HEADROOM, causing skb_kfree_head() to incorrectly free the object to skb_small_head_cache instead of back to the original kmalloc cache, resulting in a slab cross-cache free: kmem_cache_free(skbuff_small_head): Wrong slab cache. Expected skbuff_small_head but got kmalloc-1k Fix this by always calling kfree(head) in skb_kfree_head(). This keeps the free path generic and avoids allocator-specific misclassification for KFENCE objects.
CVSS metrics
3 scores · 3 sources · 1 version- OSV · UbuntuEcosystem advisory · calculated5.5MediumCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
- OSV · DebianEcosystem advisory · calculated5.5MediumCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
EPSS trend
Probability
0.26%
Chance of exploitation in the next 30 days
Percentile
18%
Versus all other CVEs
30-day change
Increase +0.10 pp
From 0.16% on 04-10-2026
Known exploited
Compare KEV catalogsNot in the CISA KEV catalog.
Not in the ENISA CNW catalog.
Not in the CIRCL catalog.
Public exploits
0 foundNo public exploits indexed.
Weaknesses
CWE · root causeAffected systems
Known conditions: local access, low-privilege account, no user interaction (CVSS vector). Other conditions: not stated in public data.
Ubuntu130 products
- linux< 6.8.0-136.136 | All versions (No fix recorded)
- linux-allwinner-5.19All versions (No fix recorded)
- linux-aws< 6.8.0-1061.64 | All versions (No fix recorded)
- linux-aws-5.0All versions (No fix recorded)
- linux-aws-5.11All versions (No fix recorded)
Linux2 products
- linux≥ bf9f1baa279f0758dc2297080360c5a616843927, < 128b03ccb2582a643983a48a37fda58df80edbde | ≥ bf9f1baa279f0758dc2297080360c5a616843927, < 60313768a8edc7094435975587c00c2d7b834083 | ≥ bf9f1baa279f0758dc2297080360c5a616843927, < 2d64618ea846d8d033477311f805ca487d6a6696 | ≥ bf9f1baa279f0758dc2297080360c5a616843927, < 474e00b935db250cac320d10c1d3cf4e44b46721 | ≥ bf9f1baa279f0758dc2297080360c5a616843927, < 0f42e3f4fe2a58394e37241d02d9ca6ab7b7d516 | 6.3
- linux_kernel≥ 6.3, < 6.6.136 | ≥ 6.7, < 6.12.82 | ≥ 6.13, < 6.18.23 | ≥ 6.19, < 6.19.13 | 7.0:rc1 | 7.0:rc2 | 7.0:rc3 | 7.0:rc4 | 7.0:rc5 | 7.0:rc6 | 7.0:rc7
Debian1 product
- linux< 6.12.85-1 | < 6.19.13-1
3 vendors · 133 products