V knihovně Log4j 2 byla objevena další zranitelnost (CVE-2021-45105), která se na rozdíl od dvou předchozích problémů řadí mezi nebezpečné, ale nikoli kritické. Nový problém umožňuje vyvolat odmítnutí služby a projevuje se jako cyklení a havarování při zpracování určitých řetězců. Zranitelnost byla odstraněna v nedávno zveřejněném vydání Log4j 2.17. Nebezpečí zranitelnosti zmírňuje to, že problém se projevuje pouze na systémech s Java 8.
Zranitelnosti jsou vystaveny systémy, které používají kontextové dotazy (Context Lookup) při určování formátu výstupu do logu, jako například ${ctx:var}. V verzích Log4j, počínaje 2.0-alpha1 a konče 2.16.0, nebyla ochrana proti nekontrolované rekurzi, což útočníkovi umožnilo způsobit cyklení manipulací s hodnotou používanou při substituci, což vedlo k vyčerpání místa na zásobníku a havarování procesu. Zejména problém vznikal při substituci takových hodnot, jako je „${${::-${::-$${::-j}}}}“.
Dále lze zmínit, že výzkumníci z firmy Blumira navrhli variantu útoku na zranitelné Java aplikace, které nepřijímají externí síťové dotazy. Například je možné tímto způsobem napadnout systémy vývojářů nebo uživatelů Java aplikací. Podstata metody spočívá v tom, že pokud má uživatel na svém systému zranitelné Java procesy, které přijímají síťová spojení pouze z místního hostitele (localhost) nebo zpracovávají RMI dotazy (Remote Method Invocation, port 1099), může být útok proveden JavaScriptovým kódem, který se provádí při otevření škodlivé stránky v prohlížeči uživatelů. Pro navázání spojení se síťovým portem Java aplikace při takovém útoku se využívá API WebSocket, pro které se, na rozdíl od HTTP dotazů, neuplatňují žádná omezení same-origin (WebSocket lze také použít ke skenování síťových portů na místním hostiteli za účelem určení dostupných síťových obslužných programů).

Zejména společnost Google zveřejnila výsledky hodnocení zranitelnosti knihoven souvisejících se závislostmi na Log4j. Podle údajů Google tato problematika zasahuje 8 % všech balíčků v repozitáři Maven Central. Konkrétně bylo zjištěno, že 35863 Java balíčků je náchylných k zranitelnostem souvisejícím s Log4j, a to jak přímých, tak nepřímých závislostí. Přičemž Log4j je jako přímá závislost první úrovně použito pouze v 17 % případů, zatímco v 83 % zasažených balíčků se vazba provádí prostřednictvím mezi balíčků, které závisí na Log4j, tedy závislostí druhé a vyšší úrovně (21 % - druhé úrovně, 12 % - třetí, 14 % - čtvrté, 26 % - páté, 6 % - šesté). Tempo oprav zranitelností zatím nezanechává dobrý dojem, týden po odhalení zranitelnosti bylo problém vyřešeno pouze u 4620 z 35863 zjištěných balíčků, což představuje 13 %.

Mezitím americká Agentura pro kybernetickou bezpečnost a ochranu infrastruktury zveřejnila naléhavou směrnici, která nařizuje federálním agenturám identifikovat informační systémy zranitelné vůči Log4j a do 23. prosince provést instalaci aktualizací, které problém zablokují. Do 28. prosince mají organizace podávat zprávy o vykonané práci. Aby se usnadnilo odhalování problémových systémů, byl vypracován seznam produktů, u kterých byla potvrzena zranitelnost (seznam zahrnuje více než 23 tisíc aplikací).
Zdroj: opennet.ru
