Chyba zabezpečení v strongSwan IPsec vedoucí ke vzdálenému spuštění kódu

strongSwan, balíček VPN založený na IPSec používaný v systémech Linux, Android, FreeBSD a macOS, má zranitelnost (CVE-2023-41913), kterou může útočník zneužít ke vzdálenému spuštění kódu. Chyba zabezpečení je způsobena chybou v procesu charon-tkm s implementací protokolu Key Exchange (IKE) TKMv2 (Trusted Key Manager), což má za následek přetečení vyrovnávací paměti při zpracování speciálně formátovaných hodnot schématu DH (Diffie–Hellman). Chyba zabezpečení se objevuje pouze na systémech využívajících vydání charon-tkm a strongSwan počínaje 5.3.0. Problém je vyřešen v aktualizaci strongSwan 5.9.12. Pro opravu zranitelnosti ve větvích počínaje 5.3.x byly také připraveny záplaty.

Chyba je způsobena nezkontrolováním velikosti veřejných hodnot Diffie-Hellman před jejich zkopírováním do vyrovnávací paměti s pevnou velikostí v zásobníku. Přetečení lze iniciovat odesláním speciálně vytvořené zprávy IKE_SA_INIT, která je zpracována bez ověření. Ve starších verzích strongSwan byla kontrola velikosti prováděna v obslužné rutině užitečného zatížení KE (Key Exchange), ale ve verzi 5.3.0 byly přidány změny, které přesunuly kontrolu veřejných hodnot​​na stranu obslužné rutiny protokolu DH ( Diffie-Hellman) a přidal generické funkce pro zjednodušení kontroly správnosti známých skupin D.H. Kvůli nedopatření zapomněli přidat nové kontrolní funkce do procesu charon-tkm, který funguje jako proxy mezi procesem IKE a TKM (Trusted Key Manager), v důsledku čehož funkce memcpy() obsahovala nekontrolované hodnoty ​​což umožnilo zapsat až 512 10000 bajtů do XNUMXbajtové vyrovnávací paměti.

Zdroj: opennet.ru

Přidat komentář