Участники проектов Apache Software Foundation перевыпустили патч к недавно закрытой в Tomcat уязвимости RCE, так как прежний оказался неполным. Обновления вышли в ветках 9.0, 10.1 и 11.0; их рекомендуется установить с поправкой на версию Java.
Проблема, возникшая в серверном софте из-за дефектного патча от 17 декабря, зарегистрирована как CVE-2024-56337. Уязвимости, которую так неудачно закрыли, был присвоен идентификатор CVE-2024-50379; степень угрозы оценена по CVSS в 9,8 балла.
Обе классифицируются как состояние гонки вида Time-of-Check Time-of-Use (TOCTOU). Согласно бюллетеню, подобная ошибка может возникнуть при работе в системе, не учитывающей регистр символов в именах файлов, где также включена запись для дефолтного сервлета Tomcat.
Эксплойт позволяет обойти защиту и загрузить на сервер вредоносные файлы с целью захвата контроля над системой.
Доработанный патч включен в состав сборок Tomcat 9.0.98, 10.1.34 и 11.0.2. Помимо установки апдейта пользователям придется внести изменения в настройки в соответствии с используемой версией Java:
- Java 8 или 11 — выставить значение «false» для системного свойства sun.io.useCanonCaches (по умолчанию «true»);
- Java 17 — вернуть sun.io.useCanonCaches в дефолтное значение «false» (если оно менялось);
- Java 21 и выше — все оставить как есть (изменения не потребуются).