CVE-2026-99283 Selección de timeout incorrecta en conntrack TCP de netfilter para paquetes RST
En el kernel de Linux, conntrack TCP de netfilter usa el timeout CLOSE para todo paquete RST aunque la validación mantenga la entrada en ESTABLISHED. Un segundo RST no exacto puede llegar después del challenge ACK y antes del límite de tasa, lo que afecta el manejo del estado de la conexión.
CVSS 3.1 · PRELIMINAR
- Probabilidad de explotación · EPSS del 09/110,2 % · percentil 9
- Explotada activamenteNo confirmada
- Exploit públicoNo conocido
Afectados
Linux
desde 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 hasta antes de 0c6d33329960b2d884a399196c8403643d8a9de6desde 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 hasta antes de bf80e6802273a900311b44e47c9b1a59c6d2473chasta antes de 6.18.61
Linux
Versiones no especificadas.
Qué hacer
- Verificá si usás Linux y en qué versión.
- Actualizá a la versión corregida que indique el fabricante en su aviso o aplicá su mitigación.
- Revisá registros y accesos de los sistemas expuestos para descartar un uso previo.
Calculadora CVSS
Esta vulnerabilidad todavía no tiene vector CVSS publicado.
Descripción original
In the Linux kernel, the following vulnerability has been resolved:
netfilter: conntrack: tcp: use UNACK timeout for non-closing RST packets
Commit be0502a3f2e9 ("netfilter: conntrack: tcp: only close if RST
matches exact sequence") keeps an established conntrack entry in
ESTABLISHED when an in-window RST does not match the expected sequence
number exactly, so the endpoint can validate the RST with a challenge
ACK.
The timeout selection nevertheless uses the CLOSE timeout for every RST
packet. The bug is that timeout selection is based on the packet type,
not on the state transition result: even when RST validation keeps
new_state in ESTABLISHED, the timeout is still forced to
TCP_CONNTRACK_CLOSE.
Linux TCP independently rate limits challenge ACKs per socket. A second
non-exact RST can therefore arrive after the first challenge ACK has
restored the timeout but before the rate limit expires. The second RST
lowers the timeout to 10 seconds again while the endpoint suppresses the
second challenge ACK, allowing the conntrack entry to expire while both
TCP endpoints remain established.
Using the ESTABLISHED timeout for such RSTs would avoid this short
expiration window, but it could also retain stale entries for the
five-day default because conntrack cannot reliably match the endpoint's
exact TCP state.
Use the UNACK timeout for RST packets that leave the conntrack entry in
TCP_CONNTRACK_ESTABLISHED. Exact-match RSTs and accepted RST packet
trains still fall through to timeouts[new_state], which preserves the
CLOSE timeout when conntrack accepts the RST as closing the flow.
This avoids the aggressive 10-second expiration window for non-exact
RSTs while preserving the short timeout for RSTs that conntrack accepts
as closing the flow.
Referencias (2)
Resumen traducido automáticamente de la descripción original. Fuente: Nureq Monitor. Cómo funciona.