Віддалено експлуатована root-уразливість в утиліті ping, що поставляється у FreeBSD

У FreeBSD виявлено вразливість (CVE-2022-23093) в утиліті ping, що входить до базової поставки. Проблема потенційно може призвести до віддаленого виконання коду з правами root під час перевірки за допомогою ping зовнішнього хоста, підконтрольного зловмиснику. Виправлення запропоновано в оновленнях FreeBSD 13.1-RELEASE-p5, 12.4-RC2-p2 та 12.3-RELEASE-p10. Чи схильні інші BSD-системи виявленої вразливості поки не ясно (звітів про вразливість в NetBSD, DragonFlyBSD і OpenBSD поки не з'явилося).

Вразливість викликана переповненням буфера в коді аналізу ICMP-повідомлень, що надходять у відповідь на перевірочний запит. Код надсилання та прийому ICMP-повідомлень у ping використовує raw-сокети та виконується з підвищеними привілеями (утиліта поставляється з прапором setuid root). Обробка відповіді проводиться на стороні ping через реконструкцію IP- та ICMP-заголовків пакетів, що одержуються із raw-сокету. Виділені IP- та ICMP-заголовки копіюються функцією pr_pack() у буфери, не беручи до уваги те, що в пакеті після заголовка IP можуть бути додаткові розширені заголовки.

Подібні заголовки виділяються з пакета і включаються до блоку заголовків, але не враховуються при розрахунку розміру буфера. Якщо хост у відповідь на надісланий ICMP-запит поверне пакет з додатковими заголовками, їх вміст буде записано в область за кордоном буфера в стеку. У результаті атакуючий може перезаписати до 40 байт даних у стеку, що потенційно дозволяє досягти виконання свого коду. Небезпека проблеми пом'якшує те, що в момент прояву помилки процес перебуває в стані ізоляції системних викликів (capability mode), що ускладнює отримання доступу до іншої системи після експлуатації вразливості.

Джерело: opennet.ru

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