Bezpečnost

OpenSSL hlásí v kontrole OCSP odpovědí třetí bezpečnostní chybu za dva měsíce

Škodlivý server umí klientovi, který si zapnul ověřování OCSP odpovědí, ukrojit kus paměti při každém spojení. OpenSSL označil chybu za nízkou a opravné vydání kvůli ní nechystá, zatímco známka CVSS připojená k záznamu CVE má 7,5 bodu z deseti.

· 5 zhlédnutí

Logo knihovny OpenSSL
Logo projektu OpenSSL. Foto: Acorletti, Wikimedia Commons (CC BY-SA 4.0)

Odpověď, ve které není ani jeden záznam

Bezpečnostní oznámení k chybě CVE-2026-54876 vydal projekt OpenSSL 5. srpna 2026. Sedí v kontrole OCSP odpovědí. OCSP je protokol, kterým se u certifikační autority ověřuje, jestli certifikát mezitím nebyl odvolán; server si takovou odpověď může vyzvednout sám a přiložit ji rovnou k navazování spojení, čemuž se říká stapling.

Podle textu oznámení stačí, aby server poslal odpověď, ve které není ani jeden záznam o certifikátu. Prázdný seznam je v protokolu přípustný a dekodér OpenSSL ho přijme, jenže funkce, která odpověď zpracovává, na tom místě skončila dřív, než se dostala k úklidu. Struktura vytvořená voláním OCSP_response_get1_basic() tak zůstala v paměti.

Velikost úniku si útočník umí sám nastavit: do pole s certifikáty nasype smyšlené certifikáty, ty se rozeberou a uloží do struktury ještě předtím, než kontrola prázdného seznamu funkci ukončí. Jedno navázání spojení tedy nechá v paměti tolik, kolik toho protistrana naskládala, a klient, který běží dlouho a k takovému serveru se opakovaně připojuje, se dá vyčerpat.

Týká se to jen toho, kdo si kontrolu sám zapnul

Kontrola OCSP odpovědí není v OpenSSL ve výchozím stavu zapnutá. Chyba se projeví jedině u aplikací, které při ověřování certifikátu nastaví příznak X509_V_FLAG_OCSP_RESP_CHECK nebo X509_V_FLAG_OCSP_RESP_CHECK_ALL. Postižené jsou větve 4.0 a 3.6 a oprava má přijít až ve verzích 4.0.2 a 3.6.4, takže zranitelné je zatím všechno, co z obou větví vyšlo: nejnovější vydání jsou 4.0.1 a 3.6.3 z 9. června 2026. Řady 3.5, 3.4, 3.0, 1.1.1 a 1.0.2 podle oznámení zranitelné nejsou, protože ten kus funkčnosti v nich vůbec není. Modulů FIPS se chyba netýká, dotčený kód leží mimo jejich hranici.

Nízká závažnost proti 7,5 bodu

OpenSSL dal chybě podle vlastní bezpečnostní politiky stupeň „nízká“ a v záznamu CVE, který jako přidělující autorita sám vyplnil, žádné jiné hodnocení není. Americká databáze NVD u téhož čísla vede navíc známku CVSS 3.1 se skóre 7,5 a slovním stupněm „vysoká“, s vektorem AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H.

Ta známka od OpenSSL nepochází. Záznam ji vede jako druhotnou a u téhož zdroje stojí i posudek SSVC podepsaný rolí „CISA Coordinator“, takže je za ní americká agentura CISA. Týž posudek přitom uvádí, že o zneužívání se neví, že útok jde automatizovat a že technický dopad je jen částečný.

Obě čísla si přitom neodporují tak, jak to vypadá. Základní skóre CVSS popisuje samotnou zranitelnou součást a to, kolik aplikací dotčenou funkci vůbec zapíná, do něj nevstupuje. OpenSSL naopak právě tohle váží: u červnové chyby v téže kontrole napsal rovnou, že oba příznaky jsou ve výchozím stavu vypnuté a „z toho důvodu jsme problému přiřadili nízkou závažnost“ (přeloženo z anglického originálu).

Oprava je v gitu, vydání ne

Záplata existuje ve dvou podobách, commit d8c5104 pro větev 4.0 a commit 155b5fe pro 3.6. Ten druhý přidává dvanáct řádků a dva odebírá, celé v souboru crypto/x509/x509_vfy.c: kontrola počtu záznamů se oddělila od získání struktury a prázdná odpověď se nově pošle na úklidové návěští místo přímého návratu. Autorem opravy je podle oznámení Mounir Idrassi; commit nese autorské datum 29. června 2026 a do větve 3.6 ho 3. srpna začlenil Norbert Pocs.

Nová vydání kvůli tomu nebudou. Oznámení říká, že kvůli nízké závažnosti problému projekt nyní nová vydání OpenSSL nevydává (přeloženo z anglického originálu). Oprava se objeví až v nejbližším řádném vydání obou větví; oznámení mluví o verzích 4.0.2 a 3.6.4 s dovětkem, že se na ně teprve čeká. Kdo chce záplatu dřív, musí si ji vzít z gitu sám.

Třetí nález v jedné poměrně nové funkci

Vícenásobné přikládání OCSP odpovědí pro TLS 1.3 přibylo do OpenSSL 3.6.0, vydané 1. října 2025. Do nástroje s_client s ním přišly přepínače -ocsp_check_leaf-ocsp_check_all, do s_server přepínač -status_all; podepsaní jsou pod tou změnou Michael Krueger a Martin Rauch. Od té doby má kontrola OCSP odpovědí tři bezpečnostní záznamy a všechny tři se týkají jen větví 3.6 a 4.0.

Dva z nich vyšly v jednom balíku 9. června 2026. CVE-2026-35188 je dvojí uvolnění téže paměti při kontrole přiložené odpovědi a OpenSSL mu dal stupeň „střední“; CVE-2026-42765 je přístup na nulový ukazatel, který nastane při ověřování dílčího řetězce bez vlastnoručně podepsané kotvy důvěry, se stupněm „nízká“. Srpnový únik paměti je třetí v pořadí.

O ohrožení přitom nerozhoduje jen číslo verze. Zjistit, jestli se vás chyba týká, je rychlejší ve vlastním kódu než ve výpisu balíčků: hledá se, jestli aplikace některý z těch dvou ověřovacích příznaků nastavuje. Kdo je nenastavuje, nemá důvod na 3.6.4 čekat.

Zdroje

Bezpečnost

TLSCVEOpenSSL

Diskuse

Zatím tu nikdo nediskutuje.

Diskutovat mohou přihlášení čtenáři – přihlaste se nebo si založte účet.

← zpět na výpis