Отдалечен атакуващ без необходимост от автентикация може да срине множество HTTP/3 уеб сървъри само с една връзка, съобщиха от компанията за сигурност FoxIO, като публикуваха и работещ концептуален код (proof-of-concept).

Чрез изпращане на малък пакет компресирани HTTP заглавки, които се разширяват в паметта до значително по-голям обем, атакуващият може да принуди сървъра да задели хиляди пъти повече памет от получената, което е достатъчно да изчерпи наличната памет на сървър със стандартни настройки.

Уязвимостите водят единствено до атаки за отказ на услуга (DoS), като няма доказателства за кражба на данни или изпълнение на код, нито публични доклади за реални атаки в интернет. Вече са налични корекции за сигурност за quic-go, Cloudflare quiche, lsquic и Wireshark, но Bun, Rust библиотеката h3 и aioquic все още бяха без отстранени уязвимости към момента на оповестяването.

FoxIO открива същия клас слабост в седем от десетте тествани HTTP/3 стека. Общата причина е в QPACK — схемата, която HTTP/3 използва за компресиране на заглавките на заявките, така че повтарящите се полета да се предават като кратък код вместо пълния текст.

Предвижда се сървърът да ограничава размера на заглавките след разопаковането им. Засегнатите софтуерни стекове обаче ограничават размера на компресирания пакет, постъпващ по мрежата, но не и разопакования резултат, или прилагат ограничението твърде късно. Вследствие на това една-единствена заявка може да се разгърне в стотици хиляди записи на заглавки, които сървърът задържа в оперативната памет.

Обхватът е широк, тъй като тези компоненти стоят в основата на популярен софтуер. quic-go е Go библиотеката зад Caddy, Traefik и cloudflared; lsquic е библиотеката на LiteSpeed, използвана в LiteSpeed Web Server и OpenLiteSpeed; а HTTP/3 сървърът на Bun работи върху lsquic.

Атакуващият не се нуждае от потребителски профил или специален достъп, а тъй като HTTP/3 функционира върху UDP, заявката достига до сървъра преди повечето обичайни филтрации да успеят да се приложат.

Кои стекове са с отстранена уязвимост и кои все още са изложени на риск към 22 октомври 2026 г.:

СтекСтатусКоригирана версияИдентификатор
quic-goКоригирана0.57.0CVE-2025-64702
Cloudflare quicheКоригирана0.29.3CVE-2026-12523
lsquicКоригирана4.9.0няма CVE
WiresharkКоригирана4.6.2 / 4.4.12CVE-2025-13945
BunБез корекция—няма CVE
h3 (hyperium)Без корекция—няма CVE
aioquic / mitmproxyБез корекция—няма CVE

FoxIO посочва IIS, Envoy, ngtcp2/nghttp3 и quiche на Google като незасегнати, тъй като всеки от тях ограничава разопакованите заглавки по време на декодирането, а не след него.

Степента на усилване варира според стека при тестовете на FoxIO със стандартни настройки. При quic-go компресиран пакет от 1 MB се разгъва в около 160 000 полета на заглавки и заема приблизително 15 MB в заявката, което е около 17 пъти повече от изпратените байтове; бюлетинът на самия quic-go определя възможното разширение на около 50 пъти.

Демонстрация на усилването на паметта при QPACK

Втори метод води до значително по-високо съотношение: атакуващият запазва един запис на заглавка от около 4 KB, след което препраща към него хиляди пъти чрез еднобайтови референции, а сървърът възстановява пълния запис при всяко позоваване. FoxIO измерва около 4000 пъти усилване при Bun и между 600 и 1800 пъти при lsquic.

Най-тежкият сценарий се наблюдава при Bun. Неговият HTTP/3 сървър, който в документацията на Bun е описан като експериментален, използва lsquic, но заменя модула за ограничаване на паметта за заглавки със собствен код, който проверява всяка отделна заглавка, но никога текущия общ сбор. FoxIO установява, че след като разопакованите заглавки надхвърлят 2 GB, броячът на размера в този код препълва до нула и сървърът навлиза в безкраен цикъл.

Единичен поток, пренасящ около 516 KB по мрежата, блокира сървъра при 100 процента натоварване на процесора без възможност за възстановяване, блокирайки нови заявки, съобщават от FoxIO. Липсата на проверка за общия текущ сбор позволява достигането на препълването, докато вграденият лимит от 64 KB в самия lsquic го предотвратява.

Случаят с Wireshark е различен от сървърните уязвимости. Проблемът там срива дисектора за HTTP/3 — компонента, който чете HTTP/3 трафик от мрежови записи, когато Wireshark декриптира трафик чрез файл с ключове (key-log) или отваря файл със запис, съдържащ тайни за декриптиране. Това не е сървър, до който атакуващ има достъп по мрежата. От Wireshark заявиха, че „не са запознати със съществуването на експлойти за този проблем“.

Администраторите трябва да обновят системите си до коригираните версии, посочени по-горе. За софтуерните стекове без налично обновяване FoxIO препоръчва временни мерки: при Bun да не се излага публично HTTP/3 сървър; при mitmproxy да се изключи HTTP/3 чрез подаване на параметъра --set http3=false; а за Rust библиотеката h3 да се зададе разумен лимит чрез max_field_section_size.

Корекцията за lsquic, пусната на 16 юли 2026 г., ограничава броя на задържаните разопаковани набори от заглавки на поток до един по подразбиране. От FoxIO споделят, че работата по изследването е започнала след анализа на Гал Бар Нахум върху „MadeYouReset“ — техника за отказ на услуга срещу HTTP/2, която повдига въпроса дали компресията на заглавки в HTTP/3 страда от сходна слабост.