Podatność SQL Injection w komponencie JDBCAppender biblioteki Apache Log4j 1.2.x umożliwia nieuwierzytelnionym atakującym wykonanie dowolnych zapytań SQL poprzez spreparowane dane wejściowe logowane przez aplikację. Ocena CVSS 9.8 (CRITICAL) wskazuje na bardzo wysokie ryzyko naruszenia poufności, integralności i dostępności danych.
▸ Pokaż oryginał (EN)
By design, the JDBCAppender in Log4j 1.2.x accepts an SQL statement as a configuration parameter where the values to be inserted are converters from PatternLayout. The message converter, %m, is likely to always be included. This allows attackers to manipulate the SQL by entering crafted strings into input fields or headers of an application that are logged allowing unintended SQL queries to be executed. Note this issue only affects Log4j 1.x when specifically configured to use the JDBCAppender, which is not the default. Beginning in version 2.0-beta8, the JDBCAppender was re-introduced with proper support for parameterized SQL queries and further customization over the columns written to in logs. Apache Log4j 1.2 reached end of life in August 2015. Users should upgrade to Log4j 2 as it addresses numerous other issues from the previous versions.
JDBCAppender w Log4j 1.2.x przyjmuje instrukcję SQL jako parametr konfiguracyjny, w którym wartości do wstawienia pochodzą z konwerterów PatternLayout — w tym konwertera %m odpowiadającego za treść wiadomości logowanej. Atakujący może wprowadzić spreparowany ciąg znaków do pól formularzy lub nagłówków HTTP obsługiwanych przez aplikację, które następnie trafiają do logu. Ponieważ wartości te nie są parametryzowane, zostają wstrzyknięte bezpośrednio do konstruowanego zapytania SQL, co pozwala na wykonanie niezamierzonych poleceń bazodanowych. Podatność dotyczy wyłącznie konfiguracji, w której świadomie włączono JDBCAppender — nie jest to konfiguracja domyślna.
Atakujący może odczytać, zmodyfikować lub usunąć dane z bazy danych, do której podłączona jest aplikacja, a w zależności od uprawnień konta bazodanowego potencjalnie uzyskać dalszy dostęp do systemu. Możliwe jest naruszenie poufności, integralności oraz dostępności przechowywanych danych.
Należy przeprowadzić migrację do Apache Log4j 2 (od wersji 2.0-beta8 JDBCAppender obsługuje poprawnie sparametryzowane zapytania SQL, co eliminuje podatność). Jeśli natychmiastowa migracja nie jest możliwa, należy upewnić się, że JDBCAppender nie jest używany w konfiguracji Log4j 1.x. Użytkownicy produktów Netapp, Broadcom oraz Oracle powinni zastosować patche dostępne u producenta zgodnie z referencjami.
Apache Log4j w gałęzi 1.2.x skonfigurowany do użycia JDBCAppender. Podatność dotyczy również produktów opartych na tej bibliotece: Netapp Snapmanager, Broadcom Brocade SANnav, Qos.ch Reload4J oraz Oracle Advanced Supply Chain Planning (szczegółowe wersje wskazane w referencjach producentów). Apache Log4j 1.2 osiągnął koniec wsparcia (end of life) w sierpniu 2015 roku.
Apache Log4j 1.2 osiągnął koniec wsparcia (end of life) w sierpniu 2015 roku — migracja do Log4j 2 jest jedynym długoterminowym rozwiązaniem. Podatność jest aktywna wyłącznie przy niedomyślnej konfiguracji z włączonym JDBCAppender.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HApache Log4j
APPApache1.2 – 1.2.17Broadcom Brocade Sannav
APPBroadcomwszystkie wersjeNetapp Snapmanager
APPNetappwszystkie wersjeOracle Advanced Supply Chain Planning
APPOracle12.112.2Oracle Business Intelligence
APPOracle12.2.1.3.012.2.1.4.05.9.0.0.0Oracle Business Process Management Suite
APPOracle12.2.1.3.012.2.1.4.0Oracle Communications Eagle Ftp Table Base Retrieval
APPOracle4.5Oracle Communications Instant Messaging Server
APPOracle10.0.1.5.0Oracle Communications Messaging Server
APPOracle8.1Oracle Communications Network Integrity
APPOracle7.3.6Oracle Communications Offline Mediation Controller
APPOracle12.0.0.5.0< 12.0.0.4.4Oracle Communications Unified Inventory Management
APPOracle7.4.17.4.2Oracle E Business Suite Cloud Manager And Cloud Backup Module
APPOracle2.2.1.1.1< 2.2.1.1.1Oracle E Business Suite Information Discovery
APPOracle12.2.3 – 12.2.11Oracle Enterprise Manager Base Platform
APPOracle13.4.0.013.5.0.0Oracle Financial Services Revenue Management And Billing Analytics
APPOracle2.7.0.02.7.0.12.8.0.0Oracle Healthcare Foundation
APPOracle8.1.0Oracle Hyperion Data Relationship Management
APPOracle< 11.2.8.0Oracle Hyperion Infrastructure Technology
APPOracle< 11.2.8.0Oracle Identity Management Suite
APPOracle12.2.1.3.012.2.1.4.0Oracle Identity Manager Connector
APPOracle11.1.1.5.0Oracle Jdeveloper
APPOracle12.2.1.3.0Oracle Middleware Common Libraries And Tools
APPOracle12.2.1.4.0Oracle MySQL Enterprise Monitor
APPOracle≤ 8.0.29Oracle Retail Extract Transform And Load
APPOracle13.2.5Oracle Tuxedo
APPOracle12.2.2.0.0Oracle Weblogic Server
APPOracle12.2.1.3.012.2.1.4.014.1.1.0.0Qos Reload4j
APPQos< 1.2.18.2
Powiązane podatności
RCE w Spring Cloud Function poprzez złośliwy SpEL routing-expression
Spring4Shell — RCE przez data binding w Spring MVC/WebFlux na JDK 9+
Apache Log4j: niekompletna naprawa CVE-2021-44228 — RCE przez JNDI Lookup
Apache Log4j2 Log4Shell — RCE przez podatną funkcję JNDI lookup
RCE w Apache Struts 2 poprzez wymuszoną ewaluację OGNL