CVE-2026-74496

Summary

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

fou: Fix use-after-free in fou_create()

fou_create() publishes struct fou through sk_user_data before adding the new FOU port to the per-netns list. If fou_add_to_port_list() fails, the error path frees fou while it is still reachable through sk_user_data. A concurrent receive can then dereference the freed object in fou_from_sock().

This ordering issue was previously noted in the linked discussion.

The failure is reachable when local port 0 is requested. Each socket binds to a different ephemeral port, but fou_cfg_cmp() compares the requested port 0 and reports -EALREADY once an entry already exists.

Release the tunnel socket before freeing fou so sk_user_data is cleared first, and defer reclamation with kfree_rcu() to protect concurrent RCU readers. This matches the lifetime handling in fou_release().

Affected Software

VendorProductVersion RangeStatus
LinuxLinux23461551c00628c3f3fe9cf837bf53cf8f212b63 < a28d8903bfe76089ea4bbdbff9976965f9ef8107affected
LinuxLinux23461551c00628c3f3fe9cf837bf53cf8f212b63 < b14361aca6350ff7907b0e9903c7b94dc7d5d4a0affected
LinuxLinux3.18affected
LinuxLinux0 < 3.18unaffected
LinuxLinux7.1.8 <= 7.1.*unaffected
LinuxLinux7.2 <= *unaffected

Weaknesses

References