CVE intelligence and bounded remediation

CVE-2024-50154 — In the Linux kernel, the following vulnerability has been resolved: tcp/dccp: Don't use timer_pending() in reqsk_queue_unlink()

High CVSS 7.8

In the Linux kernel, the following vulnerability has been resolved: tcp/dccp: Don't use timer_pending() in reqsk_queue_unlink(). Martin KaFai Lau reported use-after-free [0] in reqsk_timer_handler(). """ We are seeing a use-after-free from a bpf prog attached to trace_tcp_retransmit_synack. The program passes the req->sk to the bpf_sk_storage_get_tracing kernel helper which does check for null before using it. """ The commit 83fccfc3940c ("inet: fix potential deadlock in reqsk_queue_unlink()") added timer_pending() in reqsk_queue_unlink() not to call del_timer_sync() from reqsk_timer_handler(), but it introduced a small race window. Before the timer is called, expire_timers() calls detach_timer(timer, true) to clear timer->entry.pprev and marks it as not pending. If reqsk_queue_unlink() checks timer_pending() just after expire_timers() calls detach_timer(), TCP will miss del_timer_sync(); the reqsk timer will continue running and send multiple SYN+ACKs until it expires. The reported UAF could happen if req->sk is close()d earlier than the timer expiration, which is 63s by default. The scenario would be 1. inet_csk_complete_hashdance() calls inet_csk_reqsk_queue_drop(), but del_tim…

Severity
High
CVSS
7.8 (3.1)
Published
2024-11-07
CISA KEV
Not currently listed
Ecosystem
linux/kernel
Weaknesses
CWE-416

Affected products

  • linux / linux_kernel
  • linux / linux_kernel / 6.12

Showing 2 representative product identities from 8 source matches. Confirm exact affected versions with the linked vendor and NVD evidence.

Matched remediation archetype

Use-after-free, double free, and expired resource use

This catalog composition supplies bounded fallback guidance. Explicitly reviewed curated workflows load with the complete record below.

Check exposure

  • Trace ownership, references, callbacks, asynchronous tasks, and teardown paths around the affected object or resource.
  • Identify reachable inputs and timing or state transitions that can release the object while references remain.
  • Confirm affected builds, allocators, feature flags, architectures, and process privileges.

Remediate safely

  • Apply the maintained ownership or lifetime fix and rebuild all artifacts containing the affected native code.
  • Use explicit ownership, safe reference management, cancellation and join semantics, and idempotent teardown.
  • Add deterministic lifetime tests plus isolated sanitizer and concurrency coverage for shutdown and error paths.

Authoritative sources

Complete CVE record and remediation plan

The detailed catalog view below loads this exact record, its source evidence, and the full seven-phase agentic change plan.