CVE-2024-41066CWE-401

CVE-2024-41066

High · published July 29, 2024

CVSS v3.1
7.5
EPSS
1%
Percentile
44.1
In the wild
Unconfirmed
What it is

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

ibmvnic: Add tx check to prevent skb leak

Below is a summary of how the driver stores a reference to an skb during

transmit:

tx_buff[free_map[consumer_index]]->skb = new_skb;

free_map[consumer_index] = IBMVNIC_INVALID_MAP;

consumer_index ++;

Where variable data looks like this:

free_map == [4, IBMVNIC_INVALID_MAP, IBMVNIC_INVALID_MAP, 0, 3]

consumer_index^

tx_buff == [skb=null, skb=<ptr>, skb=<ptr>, skb=null, skb=null]

The driver has checks to ensure that free_map[consumer_index] pointed to

a valid index but there was no check to ensure that this index pointed

to an unused/null skb address. So, if, by some chance, our free_map and

tx_buff lists become out of sync then we were previously risking an

skb memory leak. This could then cause tcp congestion control to stop

sending packets, eventually leading to ETIMEDOUT.

Therefore, add a conditional to ensure that the skb address is null. If

not then warn the user (because this is still a bug that should be

patched) and free the old pointer to prevent memleak/tcp problems.

The record
Technical detail
CVSS v3.1
7.5 · HIGH
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00532 · 44.1th percentile
Weakness
CWE-401 · Missing Release of Memory after Effective Lifetime
Published
2024-07-29T19:15Z
Affected products (8)
ProductVersionsFixed in
linux/linux_kernel< 6.1.1016.1.101
linux/linux_kernel≥ 6.2, < 6.6.426.6.42
linux/linux_kernel≥ 6.7, < 6.9.116.9.11
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (9)
EPSS history
Timeline
  • 29 JUL 14:57Z
    ibmvnic: Add tx check to prevent skb leak
    cvelistv5