Фонд Apache Software Foundation (ASF) выпустил обновление безопасности для устранения важной уязвимости в серверном ПО Tomcat, которая могла позволить выполнение произвольного кода (RCE) при определённых условиях. Уязвимость, получившая идентификатор CVE-2024-56337,является частично исправленной версией проблемы CVE-2024-50379(оценка CVSS: 9.8), которая была закрыта 17 декабря 2024 года.
Согласно официальному уведомлению, пользователи, работающие с Tomcat на файловых системах с нечувствительностью к регистру и включённым параметром записи для сервлета по умолчанию (значение readonly установлено в false), должны внести дополнительные изменения в конфигурацию для полного устранения уязвимости, в зависимости от версии Java.
Обе уязвимости связаны с состоянием гонки типа (Race Condition) Time-of-check Time-of-use (TOCTOU). Они позволяют выполнить код на файловых системах, нечувствительных к регистру, когда активирован сервлет по умолчанию с функцией записи.
Проблема проявляется при одновременном чтении и загрузке одного файла под нагрузкой, что может обходить проверки чувствительности к регистру и приводить к обработке загруженного файла как JSP, что открывает возможность удалённого выполнения кода.
Уязвимость CVE-2024-56337 затрагивает следующие версии Apache Tomcat:
- Apache Tomcat 11.0.0-M1 до 11.0.1 (исправлено в 11.0.2 и выше);
- Apache Tomcat 10.1.0-M1 до 10.1.33 (исправлено в 10.1.34 и выше);
- Apache Tomcat 9.0.0.M1 до 9.0.97 (исправлено в 9.0.98 и выше).
Для устранения проблемы также необходимо внести изменения в настройки в зависимости от версии Java:
- Для Java 8 и Java 11: установить системное свойство sun.io.useCanonCaches в значение false (по умолчанию – true).
- Для Java 17: проверить, что свойство sun.io.useCanonCaches отключено (по умолчанию оно уже отключено).
- Для Java 21 и новее: дополнительных действий не требуется, так как данное свойство уже было удалено.
ASF поблагодарила исследователей Nacl, WHOAMI, Yemoli и Ruozhi за выявление и сообщение об уязвимостях, а также KnownSec 404 Team за независимое обнаружение CVE-2024-56337 и предоставление PoC-эксплойта.