Skip to main content
Press slash or control plus K to focus the search. Use the arrow keys to navigate results and press enter to open a threat.
Reconnecting to live updates…
EPSS 0.2%top 90%

Linux azure: In the Linux kernel, the following vulnerability has been resolved: udp: Fix memory accounting leak. (CVE-2025-22058)

0
Medium
Published: 04/16/2025 (04/16/2025, 15:15:00 UTC)
Source: GCVE Database
Product: linux-azure

Description

In the Linux kernel, the following vulnerability has been resolved: udp: Fix memory accounting leak. Matt Dowling reported a weird UDP memory usage issue. Under normal operation, the UDP memory usage reported in /proc/net/sockstat remains close to zero. However, it occasionally spiked to 524,288 pages and never dropped. Moreover, the value doubled when the application was terminated. Finally, it caused intermittent packet drops. We can reproduce the issue with the script below [0]: 1. /proc/net/sockstat reports 0 pages # cat /proc/net/sockstat | grep UDP: UDP: inuse 1 mem 0 2. Run the script till the report reaches 524,288 # python3 test.py & sleep 5 # cat /proc/net/sockstat | grep UDP: UDP: inuse 3 mem 524288 <-- (INT_MAX + 1) >> PAGE_SHIFT 3. Kill the socket and confirm the number never drops # pkill python3 && sleep 5 # cat /proc/net/sockstat | grep UDP: UDP: inuse 1 mem 524288 4. (necessary since v6.0) Trigger proto_memory_pcpu_drain() # python3 test.py & sleep 1 && pkill python3 5. The number doubles # cat /proc/net/sockstat | grep UDP: UDP: inuse 1 mem 1048577 The application set INT_MAX to SO_RCVBUF, which triggered an integer overflow in udp_rmem_release(). When a socket is close()d, udp_destruct_common() purges its receive queue and sums up skb->truesize in the queue. This total is calculated and stored in a local unsigned integer variable. The total size is then passed to udp_rmem_release() to adjust memory accounting. However, because the function takes a signed integer argument, the total size can wrap around, causing an overflow. Then, the released amount is calculated as follows: 1) Add size to sk->sk_forward_alloc. 2) Round down sk->sk_forward_alloc to the nearest lower multiple of PAGE_SIZE and assign it to amount. 3) Subtract amount from sk->sk_forward_alloc. 4) Pass amount >> PAGE_SHIFT to __sk_mem_reduce_allocated(). When the issue occurred, the total in udp_destruct_common() was 2147484480 (INT_MAX + 833), which was cast to -2147482816 in udp_rmem_release(). At 1) sk->sk_forward_alloc is changed from 3264 to -2147479552, and 2) sets -2147479552 to amount. 3) reverts the wraparound, so we don't see a warning in inet_sock_destruct(). However, udp_memory_allocated ends up doubling at 4). Since commit 3cd3399dd7a8 ("net: implement per-cpu reserves for memory_allocated"), memory usage no longer doubles immediately after a socket is close()d because __sk_mem_reduce_allocated() caches the amount in udp_memory_per_cpu_fw_alloc. However, the next time a UDP socket receives a packet, the subtraction takes effect, causing UDP memory usage to double. This issue makes further memory allocation fail once the socket's sk->sk_rmem_alloc exceeds net.ipv4.udp_rmem_min, resulting in packet drops. To prevent this issue, let's use unsigned int for the calculation and call sk_forward_alloc_add() only once for the small delta. Note that first_packet_length() also potentially has the same problem. [0]: from socket import * SO_RCVBUFFORCE = 33 INT_MAX = (2 ** 31) - 1 s = socket(AF_INET, SOCK_DGRAM) s.bind(('', 0)) s.setsockopt(SOL_SOCKET, SO_RCVBUFFORCE, INT_MAX) c = socket(AF_INET, SOCK_DGRAM) c.connect(s.getsockname()) data = b'a' * 100 while True: c.send(data)

CVSS v3.1

Score 5.5medium

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Affected software

Affected versions
Red HatRed Hat Enterprise LinuxRed Hat Enterprise Linux BaseOS E4S (v.8.8)Red Hat Enterprise Linux BaseOS TUS (v.8.8)ppc64le<5.15.0-1100.107~20.04.2<5.15.0-1110.119~20.04.1<5.15.0-1100.109~20.04.1<5.15.0-170.180~20.04.3<5.15.0-1094.97~20.04.1

AI-Powered Analysis

Machine-generated threat intelligence

AILast updated: 06/25/2026, 04:45:57 UTC

Technical Analysis

The advisory covers three kernel vulnerabilities in Red Hat Enterprise Linux 9: CVE-2025-22058 fixes a UDP memory accounting leak; CVE-2025-37914 addresses a double list add in the net_sched subsystem involving the ets class with netem as a child qdisc; CVE-2025-38417 resolves a memory leak in the ice driver's eswitch code during reset scenarios. These issues affect the core Linux kernel components and have been fixed in updated kernel packages. Red Hat rates the update as Important and recommends applying the update and rebooting the system to activate the fixes.

Potential Impact

The vulnerabilities could lead to memory leaks and potential instability or resource exhaustion in affected systems running vulnerable kernel versions. The issues affect kernel networking components and drivers, which are critical for system operation. No exploits are currently known in the wild, but the vulnerabilities could impact system reliability and security if left unpatched.

Mitigation Recommendations

Red Hat has released updated kernel packages that fix these vulnerabilities. Users should apply the available kernel updates for Red Hat Enterprise Linux 9 as described in the Red Hat advisory RHSA-2025:14420 and reboot their systems to ensure the fixes take effect. Patch status is official-fix. No additional mitigation steps are indicated by the vendor.

Pro Console: star threats, build custom feeds, automate alerts via Slack, email & webhooks.Upgrade to Pro

Technical Details

Gcve Source
db.gcve.eu
Csaf Category
csaf_security_advisory
Csaf Version
2.0
Publisher
Red Hat Product Security
Advisory Id
RHSA-2025:14420
Cve Count
3
Additional Cves
["CVE-2025-37914","CVE-2025-38417"]
Cvss Version
null

Threat ID: 6a3caf124853345fc153d7bf

Added to database: 06/25/2026, 04:31:14 UTC

Last enriched: 06/25/2026, 04:45:57 UTC

Last updated: 08/20/2026, 10:52:05 UTC

Views: 60

Community Reviews

0 reviews

Crowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.

Sort by
Loading community insights…

Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.

Need more coverage?

Upgrade to Pro Console for AI refresh and higher limits.

For incident response and remediation, OffSeq services can help resolve threats faster.

Latest Threats

Breach by OffSeqOFFSEQFRIENDS — 25% OFF

Check if your credentials are on the dark web

Instant breach scanning across billions of leaked records. Free tier available.

Scan now
OffSeq TrainingCredly Certified

Lead Pen Test Professional

Technical5-day eLearningPECB Accredited
View courses