# Luka CVE-2026-4247 w FreeBSD: wyciek mbuf podczas przetwarzania TCP Challenge ACK
Zespół FreeBSD 26 marca 2026 roku opublikował szczegóły CVE-2026-4247 — luki umożliwiającej zdalny DoS poprzez wyciek mbuf w połączeniach TCP. Problem dotyczy przetwarzania nieoczekiwanych segmentów TCP w ustanowionych połączeniach.
Protokół TCP po otrzymaniu nieoczekiwanych pakietów generuje Challenge ACK w celu sprawdzenia legalności. Szybkość generowania jest ograniczona parametrami sysctl: net.inet.tcp.ack_war_timewindow (domyślnie 1000 ms) i net.inet.tcp.ack_war_cnt (5). W tym interwale przetwarzane są tylko pierwsze 5 pakietów, pozostałe są ignorowane.
Funkcja tcp_respond() w tcp_subr.c tworzy Challenge ACK i zużywa mbuf. Jeśli ACK nie jest potrzebny, mbuf jest zwalniany. Atakujący podszywający się pod pakiety powoduje utratę mbuf dla pakietów przekraczających limit — po jednym na pakiet.
Luka dotyczy wszystkich stosów TCP w FreeBSD: podstawowego, RACK, BBR. Podstawowy stos wysyła więcej ACK, co wzmacnia efekt.
Wektory ataku i warunki wykorzystania
Atak jest możliwy w przypadku:
- Pozycjonowania się na drodze połączenia TCP (MITM).
- Ustanowienia własnego połączenia z celem.
Zewnętrzni atakujący zgadują adresy IP, porty i numery seq do spoofingu. Skuteczność jest niska ze względu na złożoność.
Każdy spoofowany pakiet przekraczający limit (5/s) powoduje wyciek mbuf, wyczerpując pulę i prowadząc do DoS.
Tymczasowe środki ochrony
Wyłącz limit szybkości ACK:
sysctl net.inet.tcp.ack_war_timewindow=0
Dodaj do /etc/sysctl.conf dla trwałości.
To eliminuje wyciek, ale zwiększa obciążenie CPU poprzez przetwarzanie wszystkich pakietów.
Stała poprawka i gałęzie
Zaktualizuj do gałęzi z poprawkami (commity i rewizje):
- stable/15/ 1fddb5435315 (stable/15-n282699)
- releng/15.0/ de9e5d82581e (releng/15.0-n281011)
- stable/14/ b45e7530ffb9 (stable/14-n273839)
- releng/14.4/ 44dd8b58394b (releng/14.4-n273676)
- releng/14.3/ a9cba5321021 (releng/14.3-n271476)
Harmonogram wydań FreeBSD
FreeBSD 15.0 ukazało się 2 grudnia 2025. Skrócenie wsparcia gałęzi do 4 lat, nowe gałęzie co 2 lata. Wydania pośrednie co 6 miesięcy w gałęzi, ogólny cykl — 3 miesiące przy równoległej pracy nad dwiema gałęziami.
FreeBSD 14.4 — 10 marca 2026. Gałąź 14.x to ostatnia dla platform 32-bitowych. FreeBSD 15+ — tylko 64-bitowe z COMPAT_FREEBSD32 dla aplikacji legacy.
Co ważne
- Luka jest wykorzystywana zdalnie poprzez spoofing pakietów TCP, prowadzi do wyczerpania mbuf.
- Dotyczy wszystkich stosów TCP w FreeBSD; domyślny limit ACK wzmacnia wyciek.
- Tymczasowe rozwiązanie: sysctl net.inet.tcp.ack_war_timewindow=0 (kompensacja obciążeniem CPU).
- Poprawki w stable/15, releng/15.0, stable/14 i releng/14.x.
- FreeBSD 14.x — koniec wsparcia 32-bit; przejdź na 64-bit.
— Editorial Team
Brak komentarzy.