CVE-2026-74496 PUBLISHED

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

Assigner: Linux
Reserved: 15.08.2026 Published: 15.08.2026 Updated: 15.08.2026

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().

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 23461551c00628c3f3fe9cf837bf53cf8f212b63 to a28d8903bfe76089ea4bbdbff9976965f9ef8107 (excl.)
  • affected from 23461551c00628c3f3fe9cf837bf53cf8f212b63 to b14361aca6350ff7907b0e9903c7b94dc7d5d4a0 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 3.18 is affected
  • unaffected from 0 to 3.18 (excl.)
  • unaffected from 7.1.8 to 7.1.* (incl.)
  • unaffected from 7.2-rc6 to * (incl.)

References