Вразливість у strongSwan IPsec, що призводить до віддаленого виконання коду

У strongSwan, VPN-пакеті на базі протоколу IPSec, що застосовується в Linux, Android, FreeBSD та macOS, виявлено вразливість (CVE-2023-41913), яку можна використовувати для віддаленого виконання коду зловмисника. Уразливість викликана помилкою в процесі charon-tkm з реалізацією протоколу обміну ключами (IKE) на базі TKMv2 (Trusted Key Manager), що призводить до переповнення буфера при обробці спеціально оформлених значень схеми DH (Diffie-Hellman). Вразливість проявляється тільки в системах, що використовують charon-tkm та у випусках strongSwan, починаючи з 5.3.0. Проблема усунена в оновленні strongSwan 5.9.12. Для виправлення вразливості у гілках починаючи з 5.3.x також підготовлені патчі.

Помилка викликана відсутністю перевірки розміру публічних значень Diffie-Hellman перед копіюванням в буфер фіксованого розміру в стеку. Переповнення може бути ініційоване через відправлення спеціального оформленого повідомлення IKE_SA_INIT, що обробляється без автентифікації. У старих версіях strongSwan перевірка розміру здійснювалася в обробнику KE payload (Key Exchange), але у версії 5.3.0 були додані зміни, що переносять перевірку публічних значень на бік обробника протоколу DH (Diffie-Hellman) і додають типові функції для спрощення перевірки коректності DH. За недоглядом, нові функції перевірки забули додати в процес charon-tkm, що працює як проксі між процесом IKE і TKM (Trusted Key Manager), в результаті чого функції memcpy() виявилися неперевірені значення, що дозволяють записати в 512-байтовий буфер до 10000 байтів даних.

Джерело: opennet.ru

Додати коментар або відгук