Fundacja Apache Software Foundation (ASF) opublikowała ważną aktualizację zabezpieczeń związaną z luką w oprogramowaniu serwera Tomcat, która w określonych warunkach może prowadzić do zdalnego wykonania kodu (RCE). Jest to kluczowe ostrzeżenie skierowane do użytkowników, którzy korzystają z tej technologii, o konieczności natychmiastowego podjęcia działań mających na celu ochronę infrastruktury.
Opisywana luka, oznaczona jako blank”>CVE-2024-56337, stanowi niedoskonałe złagodzenie problemu wykrytego wcześniej jako blank”>CVE-2024-50379 (CVSS: 9.8). Pierwotna podatność była zaadresowana 17 grudnia 2024 roku, jednak ostatnie odkrycie wskazuje, że pełna ochrona wciąż wymaga dodatkowej konfiguracji w określonych środowiskach.
„Użytkownicy uruchamiający Tomcata na nieczułych na wielkość liter systemach plików wraz z włączonym zapisem w domyślnym servletcie powinni rozważyć dodatkowe zmiany konfiguracji, aby w pełni złagodzić ryzyko związane z CVE-2024-50379, w zależności od wersji Javy, z której korzystają w połączeniu z Tomcatem” – napisali opiekunowie projektu w oficjalnym komunikacie.
Obie wykryte luki, zarówno CVE-2024-56337, jak i CVE-2024-50379, to podatności klasy Time-of-check Time-of-use (TOCTOU). Są to podatności wynikające z wyścigu warunków (race condition), które mogą prowadzić do wykonania kodu na systemach plików wrażliwych na wielkość liter w przypadku włączonego zapisu przez domyślny servlet.
„Równoczesne operacje odczytu i przesyłania na tym samym pliku pod dużym obciążeniem mogą ominąć mechanizmy weryfikacji wielkości liter w Tomcacie, sprawiając, że przesłany plik jest traktowany jako skrypt JSP, co prowadzi do zdalnego wykonania kodu” – ostrzega Apache w odniesieniu do CVE-2024-50379.
Podatność CVE-2024-56337 dotyczy następujących wersji Apache Tomcat:
- Apache Tomcat 11.0.0-M1 do 11.0.1 (naprawiono w wersji 11.0.2 i nowszych)
- Apache Tomcat 10.1.0-M1 do 10.1.33 (naprawiono w wersji 10.1.34 i nowszych)
- Apache Tomcat 9.0.0.M1 do 9.0.97 (naprawiono w wersji 9.0.98 i nowszych)
Aby zapewnić ochronę, użytkownicy powinni wprowadzić następujące zmiany w konfiguracji, w zależności od używanej wersji Javy:
- Java 8 lub Java 11 – wyraźnie ustaw systemową właściwość
sun.io.useCanonCaches
nafalse
(domyślnie ustawiona natrue
). - Java 17 – upewnij się, że właściwość
sun.io.useCanonCaches
jest ustawiona nafalse
(domyślnie ustawiona nafalse
). - Java 21 i nowsze – nie są wymagane żadne działania, ponieważ ta właściwość została usunięta.
Fundacja ASF podziękowała badaczom bezpieczeństwa – Nacl, WHOAMI, Yemoli oraz Ruozhi – za identyfikację i zgłoszenie obu luk. Wyrażono również uznanie dla zespołu KnownSec 404 Team za niezależne zgłoszenie CVE-2024-56337 z kodem dowodu konceptu (PoC).
Warto również odnotować, że w tym samym czasie inicjatywa Zero Day Initiative (ZDI) ujawniła szczegóły krytycznej luki w Webmin (CVE-2024-12828, CVSS: 9.9). Luka ta umożliwia uwierzytelnionym zdalnym atakującym wykonanie dowolnego kodu, co dodatkowo podkreśla rosnące zagrożenia w cyberprzestrzeni. Według ZDI problem wynika z braku odpowiedniej walidacji ciągu znaków dostarczanego przez użytkownika przed jego wykorzystaniem w żądaniu systemowym. Atakujący może wykorzystać tę podatność, aby wykonywać kod w kontekście użytkownika root.