Apache Log4j 1
Уважаемые участники сообщества Log4j!
Работая над выпусками Apache Log4j версии 2 за декабрь 2021 года, комитет по управлению проектами (PMC) службы ведения журналов Apache получил запросы о пересмотре решения об окончании срока службы (EOL) Apache Log4j версии 1, последний выпуск которого состоялся в 2012 году.
Мы рассмотрели эти запросы и обсудили различные варианты. В конечном итоге мы пришли к единогласному решению, что единственным устойчивым подходом является продолжение фокусировки на Log4j версии 2. PMC настоящим подтверждает объявление EOL от 2015 года для Log4j версии 1, что означает, что ресурсы не будут вкладываться в кодовую базу Log4j версии 1. Мы призываем пользователей обновиться до последних версий Log4j версии 2. Мы приветствуем все усилия, направленные на то, чтобы внести свой вклад в сообщество Log4j. Пожалуйста, используйте списки рассылки разработчиков, чтобы связаться с нами: https://logging.apache.org/log4j/2.x/mail-lists.html.
Исходный код Log4j версии 1 будет по-прежнему доступен публично, но запросы на извлечение будут закрыты как «не будут исправлены». Лицензия Apache позволяет создавать форки кода, которые уважают товарные знаки Apache Software Foundation.
Вот некоторые причины, по которым мы считаем, что это правильный выбор для проекта Log4j:
Мы внесли улучшения в https://logging.apache.org/log4j/2.x/manual/migration.html, чтобы лучше объяснить процесс. Многие пользователи не знают, что Log4j версии 2 теперь поддерживает файлы конфигурации Log4j версии 1, поскольку эта функция относительно новая. Мы считаем, что большинство приложений, использующих Log4j версии 1, теперь могут просто заменить jar Log4j версии 1.x на jar Log4j версии 2 и смогут работать. Пользователям рекомендуется связаться с нами через списки рассылки проекта (https://logging.apache.org/log4j/2.x/mail-lists.html), если есть дополнительные области для улучшения.
Решение перезапустить проект Log4j как Log4j версии 2 означало, что у нас была возможность исправить давние недостатки дизайна. Один из этих фундаментальных недостатков дизайна связан с тем, как обрабатывать многопоточность внутри библиотеки. Следующий вопрос списка рассылки — лишь один из примеров известных проблем с многопоточностью в Log4j версии 1: https://lists.apache.org/thread/7yqrmzqgzpxmbcc7skl0vr8z33fk4hd4.
Помимо перечисленных пунктов, многие другие проблемы можно найти в Bugzilla: https://bz.apache.org/bugzilla.
Проблема | Описание |
---|---|
50213 | Вызов синхронизации Category callAppenders вызывает java.lang.Thread.State: BLOCKED |
46878 | Тупик в версии 1.2.15, вызванный классами AsyncAppender и ThrowableInformation |
41214 | Тупик с RollingFileAppender |
44700 | Log4J блокирует файлы журнала прокрутки (файлы не могут быть удалены) |
49481 | Log4j прекращает запись в файл, а затем приводит к зависанию сервера |
50323 | Уязвимость в NTEventLogAppender |
50463 | AsyncAppender вызывает тупик при смерти диспетчера потоков |
50858 | Утечка загрузчика классов при использовании Log4j в контейнере веб-приложения, таком как Tomcat, WebLogic |
52141 | [STUCK] ExecuteThread...Blocked пытается получить блокировку: org/apache/log4j/Logger@0xc501e0a8[fat lock] |
54009 | Поток блокируется |
54325 | Проблемы параллелизма в AppenderAttachableImpl |
Помимо вышеперечисленных проблем, Log4j версии 1 страдает от сложной системы сборки, разработанной вокруг устаревших версий Java и операционных систем, специфичных для приложений, которые текущая команда разработчиков не может поддерживать. Использование обходных путей в предлагаемых исправлениях означает, что обновлённый выпуск не будет поддерживать все среды оригинального выпуска версии 1.2.x. Патчи к Log4j версии 1 также должны быть совместимы с существующим путём миграции Log4j версии 2.
Комитет по управлению проектами и коммиттеры службы ведения журналов Apache были сосредоточены на успехе Log4j версии 2 почти десять лет. За несколько лет, предшествовавших объявлению EOL в 2015 году, интерес к Log4j версии 1 был незначительным. Хотя могут быть люди, заинтересованные в самостоятельной работе над Log4j версии 1, пока сообщество служб ведения журналов не сможет оценить достоинства этих участников, PMC должен будет рассмотреть и применить все патчи, управлять ими. Процесс выпуска и будущая поддержка
Мы считаем, что усилия лучше направить на улучшение не устаревшего кода. Мы приветствуем вклад сообщества в миграцию компонентов для улучшения инструментов и поддержки.
В Log4j 1.x после объявления о прекращении поддержки было обнаружено несколько уязвимостей безопасности. В следующей таблице перечислены опубликованные CVE об этих проблемах.
Степень | CVE | Описание |
---|---|---|
Высокая | CVE-2019-17571 | SocketServer уязвим к удалённому выполнению кода, когда злоумышленник может создать вредоносные сериализованные события журнала и отправить их на прослушивающий экземпляр SocketServer. |
Средняя | CVE-2020-9488 | SMTPAppender уязвим для атаки «человек посередине» при использовании SMTPS из-за отсутствия проверки имени хоста в сертификате TLS. |
Высокая | CVE-2021-4104 | JMSAppender уязвим к удаленному выполнению кода, если злоумышленник контролирует либо файл конфигурации, либо целевой сервер LDAP, используемый для настройки конфигураций TopicBindingName и TopicConnectionFactoryBindingName. |
Высокая | CVE-2022-23302 | JMSSink уязвим к удалённому выполнению кода, если злоумышленник контролирует файл конфигурации или целевой сервер LDAP, используемые для настройки конфигураций TopicConnectionFactoryBindingName. |
Высокая | CVE-2022-23305 | JDBCAppender уязвим к SQL-инъекции, если злоумышленник может создать вредоносное сообщение журнала, записанное в JDBCAppender. |
Критическая | CVE-2022-23307 | Версии Chainsaw, поставляемые с Log4j до Chainsaw 2.1.0, уязвимы к удалённому выполнению кода, если злоумышленник отправляет вредоносные сериализованные события журнала. См. также CVE-2020-9493 для CVE, затрагивающей автономную версию Apache Chainsaw. |
С уважением,
Рон
Фонд программного обеспечения Apache
Вице-президент, службы ведения журналов
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )