CVE-2025-21855: ibmvnic: Don't reference skb after sending to VIOS
In the Linux kernel, the following vulnerability has been resolved:
ibmvnic: Don't reference skb after sending to VIOS
Previously, after successfully flushing the xmit buffer to VIOS,
the tx_bytes stat was incremented by the length of the skb.
It is invalid to access the skb memory after sending the buffer to
the VIOS because, at any point after sending, the VIOS can trigger
an interrupt to free this memory. A race between reading skb->len
and freeing the skb is possible (especially during LPM) and will
result in use-after-free:
==================================================================
BUG: KASAN: slab-use-after-free in ibmvnic_xmit+0x75c/0x1808 [ibmvnic]
Read of size 4 at addr c00000024eb48a70 by task hxecom/14495
<...>
Call Trace:
[c000000118f66cf0] [c0000000018cba6c] dump_stack_lvl+0x84/0xe8 (unreliable)
[c000000118f66d20] [c0000000006f0080] print_report+0x1a8/0x7f0
[c000000118f66df0] [c0000000006f08f0] kasan_report+0x128/0x1f8
[c000000118f66f00] [c0000000006f2868] __asan_load4+0xac/0xe0
[c000000118f66f20] [c0080000046eac84] ibmvnic_xmit+0x75c/0x1808 [ibmvnic]
[c000000118f67340] [c0000000014be168] dev_hard_start_xmit+0x150/0x358
<...>
Freed by task 0:
kasan_save_stack+0x34/0x68
kasan_save_track+0x2c/0x50
kasan_save_free_info+0x64/0x108
__kasan_mempool_poison_object+0x148/0x2d4
napi_skb_cache_put+0x5c/0x194
net_tx_action+0x154/0x5b8
handle_softirqs+0x20c/0x60c
do_softirq_own_stack+0x6c/0x88
<...>
The buggy address belongs to the object at c00000024eb48a00 which
belongs to the cache skbuff_head_cache of size 224
==================================================================
Security readout for executives and security teams
Plain-English summary
A race condition in the Linux ibmvnic network driver can access a network-packet object after VIOS has freed it. This may crash or destabilize affected Linux systems and could affect confidentiality or integrity. Exposure appears limited to systems using ibmvnic with VIOS, particularly during Live Partition Mobility activity.
Executive priority
Treat this as a high-priority reliability and security update for IBM virtualized Linux workloads using ibmvnic. Accelerate remediation where service availability is important or Live Partition Mobility is used. Other Linux systems are unlikely to share this specific driver path, but asset validation is necessary.
Technical view
CVE-2025-21855 is a CWE-416 use-after-free in ibmvnic_xmit. After successfully flushing a transmit buffer to VIOS, the driver read skb->len to update tx_bytes. VIOS could trigger an interrupt and free the skb first. Kernel AddressSanitizer confirmed the resulting invalid four-byte read. Stable-kernel commits change this unsafe ordering.
Likely exposure
Prioritize Linux systems using the ibmvnic driver with IBM VIOS-backed virtual networking. The supplied record identifies affected releases including 4.5, 6.1.130, 6.6.80, 6.12.17, 6.13.5, and 6.14, but its version data is ambiguous. Confirm exact exposure against the distribution kernel and referenced fixes.
Exploitation context
The CVSS 3.1 score is 8.6 with a network attack vector and high availability impact. However, the supplied record is not in KEV and provides no evidence of active exploitation or a public exploit. The demonstrated condition is a race, especially during Live Partition Mobility.
Researcher notes
The supplied affected-version data contains an unexplained “0,” duplicate commit identifiers, and no clear range semantics. Avoid deriving precise vulnerable ranges from it alone. The evidence directly establishes a post-transmission skb lifetime race and KASAN-detected read; it does not establish attacker-controlled code execution or exploitation in the wild.
Mitigation direction
Install a vendor-supported kernel containing the applicable ibmvnic stable fix.
Consult the Linux distribution or platform vendor for corrected package versions.
Prioritize systems using ibmvnic and VIOS, especially those performing Live Partition Mobility.
Apply normal change controls because kernel updates may require rebooting affected systems.
Validation and detection
Inventory loaded ibmvnic drivers and VIOS-backed virtual network interfaces.
Record kernel and distribution package versions on potentially affected systems.
Confirm the installed kernel includes the relevant referenced stable commit or vendor backport.
Review kernel logs for KASAN use-after-free reports involving ibmvnic_xmit.
Reassess after patching using vendor-supported networking and mobility tests.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-416: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
2CVSS vectors
3Timeline events
2ADP providers
7Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: total
CVSS vector scores
2 official scores
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-416 · source CWE mapping
Use After Free
Use After Free represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.