CVE-2026-23083 Overview
A memory leak vulnerability has been identified in the Linux kernel's Foo over UDP (FOU) implementation. The vulnerability exists in the fou_udp_recv() function, which fails to properly free socket buffer (skb) memory when FOU_ATTR_IPPROTO is set to 0. This improper input validation allows an attacker to cause memory exhaustion by triggering conditions where packets are neither freed nor resubmitted through ip_protocol_deliver_rcu().
Critical Impact
This vulnerability can lead to memory exhaustion and potential denial of service conditions on affected Linux kernel systems utilizing the FOU tunneling protocol.
Affected Products
- Linux kernel (versions with FOU tunneling support)
- Systems utilizing Foo over UDP (FOU) encapsulation
- Network infrastructure running vulnerable kernel versions
Discovery Timeline
- 2026-02-04 - CVE CVE-2026-23083 published to NVD
- 2026-02-05 - Last updated in NVD database
Technical Details for CVE-2026-23083
Vulnerability Analysis
The vulnerability resides in the Linux kernel's implementation of Foo over UDP (FOU), a tunneling protocol that allows IP packets to be encapsulated within UDP datagrams. The core issue is a lack of proper input validation for the FOU_ATTR_IPPROTO netlink attribute.
When FOU_ATTR_IPPROTO is set to 0, the fou_udp_recv() function enters an undefined state where it neither frees the socket buffer (skb) nor returns it for resubmission through ip_protocol_deliver_rcu(). This creates a memory leak condition where kernel memory allocated for network packet buffers is never reclaimed.
The problem is analogous to a previously identified issue in the same subsystem, suggesting a pattern of missing boundary checks for protocol identifier values in the FOU implementation.
Root Cause
The root cause is improper input validation in the FOU netlink attribute handling. The kernel code fails to validate that FOU_ATTR_IPPROTO contains a valid, non-zero IP protocol number before proceeding with packet processing. Protocol number 0 is reserved (HOPOPT in IPv6) and should not be used as a tunneling inner protocol, but the code did not enforce this constraint.
Attack Vector
An attacker with the ability to configure FOU tunnels (typically requiring CAP_NET_ADMIN capabilities) can set FOU_ATTR_IPPROTO to 0 when creating a FOU socket. Once configured, incoming UDP packets processed by this malformed FOU configuration will trigger the memory leak. Over time, repeated exploitation can exhaust kernel memory, leading to system instability or denial of service.
The attack requires local access or administrative privileges on the target system to configure the FOU netlink attributes, limiting the scope of exploitation to privileged local attackers or compromised administrative accounts.
Detection Methods for CVE-2026-23083
Indicators of Compromise
- Unusual memory consumption growth in kernel space over time
- FOU tunnel configurations with FOU_ATTR_IPPROTO set to 0
- Increased slab memory allocation without corresponding deallocation
- System logs indicating memory pressure or OOM killer activation
Detection Strategies
- Monitor for FOU netlink configuration changes that specify protocol value 0
- Implement kernel memory usage trending and alerting for abnormal growth patterns
- Audit privileged user actions related to network tunnel configuration
- Deploy endpoint detection solutions that can identify kernel-level memory anomalies
Monitoring Recommendations
- Enable kernel memory leak detection tools such as kmemleak for forensic analysis
- Monitor /proc/meminfo for increasing Slab and SUnreclaim values
- Set up alerts for FOU-related netlink socket activity from unexpected processes
- Review audit logs for CAP_NET_ADMIN capability usage
How to Mitigate CVE-2026-23083
Immediate Actions Required
- Apply the kernel patches from the official Linux kernel git repository immediately
- Restrict access to CAP_NET_ADMIN capabilities to trusted users and processes only
- Review existing FOU tunnel configurations for invalid protocol settings
- Consider disabling FOU functionality if not required in production environments
Patch Information
The Linux kernel maintainers have released patches to address this vulnerability. The fix adds validation to reject FOU_ATTR_IPPROTO values of 0, ensuring that only valid IP protocol numbers are accepted when configuring FOU tunnels.
Patches are available through the following kernel git commits:
- Kernel Git Commit 1cc98b888
- Kernel Git Commit 7a9bc9e3f
- Kernel Git Commit 9b75dff8
- Kernel Git Commit b7db31a5
Workarounds
- Remove the FOU kernel module if FOU tunneling is not required: modprobe -r fou
- Implement SELinux or AppArmor policies to restrict FOU configuration to authorized services
- Use network namespaces to isolate FOU usage to specific containers or processes
- Monitor and alert on attempts to configure FOU tunnels with invalid parameters
# Configuration example - Disable FOU module and blacklist
echo "blacklist fou" >> /etc/modprobe.d/blacklist-fou.conf
modprobe -r fou
# Verify module is not loaded
lsmod | grep fou
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

