FreeSenseFreeSenseSecurity
freesense.org
← Fixed vulnerabilities
Fixed

Use-after-free in TCP RACK stack option handler

FreeBSD-SA-26:43.tcp · CVE-2026-49422

Our decision for FreeSense

FreeBSD corrected this on 2026-06-30, before the FreeBSD source pin of every FreeSense version.

  • Advisory: corrected 2026-06-30
  • FreeSense 1.0 pin: e004ff15f87e (2026-08-03)
  • FreeSense 1.1 pin: a52c50b4b7c2 (2026-10-04)
  • FreeSense 1.2 pin: a52c50b4b7c2 (2026-10-04)
Decided by rules, not yet reviewed. The status comes from the advisory's correction date and the build configuration. A maintainer has not looked at whether FreeSense is exposed in practice. How we triage

By FreeSense version

VersionStatusFreeBSD pin
FreeSense 1.01.0.7 · frozen, no further fixesFixedFreeBSD pin of 2026-08-032026-08-03e004ff15
FreeSense 1.11.1.9FixedFreeBSD pin of 2026-10-042026-10-04a52c50b4
FreeSense 1.21.2.0-DEVELOPMENTFixedFreeBSD pin of 2026-10-042026-10-04a52c50b4

Workaround

Systems that have not loaded the tcp_rack.ko kernel module are not affected. The module is not loaded by default. To check whether it is loaded, run: # kldstat -m tcp_rack

What FreeBSD says

The RACK setsockopt(2) handler drops the connection lock in order to copy option data from userspace, then reacquires the lock. After reacquiring, it verifies that the TCP stack had not been switched away, but did not reload its pointer to the stack's per-connection control block. If userspace switches stacks twice during this window, the check will succeed but the saved pointer will refer to freed memory.

Impact

The bug may be exploitable by an unprivileged local user to escalate privileges.

Excerpt from the FreeBSD advisory. Read the original for the full text and the fix.

Copied to clipboard