Remote DOS via uninitialized memory access in KTLS receive
FreeBSD-SA-26:46.ktls · CVE-2026-49423
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)
By FreeSense version
| Version | Status | FreeBSD pin |
|---|---|---|
| FreeSense 1.01.0.7 · frozen, no further fixes | FixedFreeBSD pin of 2026-08-03 | 2026-08-03e004ff15 |
| FreeSense 1.11.1.9 | FixedFreeBSD pin of 2026-10-04 | 2026-10-04a52c50b4 |
| FreeSense 1.21.2.0-DEVELOPMENT | FixedFreeBSD pin of 2026-10-04 | 2026-10-04a52c50b4 |
Workaround
Only users running an application which enables receive-side KTLS are affected. Systems with the kern.ipc.tls.enable sysctl set to 0 are unaffected. The kern.ipc.tls.cbc_enable sysctl prevents applications from using AES-CBC with KTLS. Setting it to 0 will prevent applications from establishing new KTLS sessions using AES-CBC.
What FreeBSD says
When building the iovec array for a received TLS 1.2 CBC record, ktls_ocf_tls_cbc_decrypt() incremented the iovec index for every mbuf in the chain, including mbufs that were skipped because they contained only TLS header bytes. This left uninitialized entries in the iovec array. The iovec array was allocated without zeroing.
Impact
A remote TLS peer can cause the kernel to read from uninitialized iovec entries during HMAC computation, resulting in a kernel panic. The peer must be able to control TCP segmentation such that the first mbuf of a CBC record contains only the 5-byte TLS record header.
Excerpt from the FreeBSD advisory. Read the original for the full text and the fix.