CRITICAL✓ PATCH🇬🇧 English

CVE-2021-27850

Apache Tapestry — RCE przez bypass filtra pobierania plików klasowych

CVSS 9.8v3.1pub. 2021-04-15upd. 2024-11-21

Krytyczna podatność w Apache Tapestry umożliwia nieuwierzytelnionemu atakującemu zdalne wykonanie kodu (RCE) poprzez ominięcie poprawki dla CVE-2019-0195. Luka pozwala na pobranie tajnego klucza HMAC, a następnie podpisanie złośliwego łańcucha gadżetów Java prowadzącego do pełnego przejęcia serwera.

Pokaż oryginał (EN)

A critical unauthenticated remote code execution vulnerability was found all recent versions of Apache Tapestry. The affected versions include 5.4.5, 5.5.0, 5.6.2 and 5.7.0. The vulnerability I have found is a bypass of the fix for CVE-2019-0195. Recap: Before the fix of CVE-2019-0195 it was possible to download arbitrary class files from the classpath by providing a crafted asset file URL. An attacker was able to download the file `AppModule.class` by requesting the URL `http://localhost:8080/assets/something/services/AppModule.class` which contains a HMAC secret key. The fix for that bug was a blacklist filter that checks if the URL ends with `.class`, `.properties` or `.xml`. Bypass: Unfortunately, the blacklist solution can simply be bypassed by appending a `/` at the end of the URL: `http://localhost:8080/assets/something/services/AppModule.class/` The slash is stripped after the blacklist check and the file `AppModule.class` is loaded into the response. This class usually contains the HMAC secret key which is used to sign serialized Java objects. With the knowledge of that key an attacker can sign a Java gadget chain that leads to RCE (e.g. CommonsBeanUtils1 from ysoserial). Solution for this vulnerability: * For Apache Tapestry 5.4.0 to 5.6.1, upgrade to 5.6.2 or later. * For Apache Tapestry 5.7.0, upgrade to 5.7.1 or later.

🤖 Analiza AI
Jak działa

Wcześniejsza podatność CVE-2019-0195 umożliwiała pobieranie dowolnych plików `.class` z classpath poprzez spreparowany URL do zasobu. Zastosowana poprawka opierała się na mechanizmie blacklisty sprawdzającej, czy URL kończy się rozszerzeniem `.class`, `.properties` lub `.xml`. Bypass polega na dołączeniu znaku `/` na końcu URL-a (np. `/assets/something/services/AppModule.class/`) — blacklista nie wykrywa zagrożenia, a serwer następnie usuwa ukośnik i zwraca żądany plik. Pobrany plik `AppModule.class` zawiera zazwyczaj tajny klucz HMAC, który atakujący może wykorzystać do podpisania złośliwego, serializowanego łańcucha gadżetów Java (np. CommonsBeanUtils1 z narzędzia ysoserial), co skutkuje wykonaniem dowolnego kodu na serwerze.

Skutki

Atakujący bez żadnego uwierzytelnienia może uzyskać pełną kontrolę nad serwerem aplikacji poprzez zdalne wykonanie dowolnego kodu (RCE). Zagrożone są poufność, integralność i dostępność systemu.

Mitygacja

Dla Apache Tapestry w wersjach 5.4.0–5.6.1 należy zaktualizować do wersji 5.6.2 lub nowszej. Dla Apache Tapestry 5.7.0 należy zaktualizować do wersji 5.7.1 lub nowszej.

Kogo dotyczy

Apache Tapestry w wersjach 5.4.5, 5.5.0, 5.6.2 oraz 5.7.0; podatność dotyczy ogólnie wersji od 5.4.0 do 5.6.1 włącznie oraz 5.7.0.

Uwagi

Podatność stanowi bypass wcześniejszej poprawki dla CVE-2019-0195. Mechanizm exploitacji wykorzystuje publicznie znane narzędzie ysoserial (gadżet CommonsBeanUtils1) do generowania złośliwego payloadu deserialization, co obniża próg wejścia dla potencjalnych atakujących.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Apache Tapestry

    APP
    Apache
    5.4.0 – 5.6.2 (bez)5.7.0 – 5.7.1 (bez)
🟢
PATCH DOSTĘPNY
Aktualizacja od producenta gotowa. Wdrożenie w ramach standardowego cyklu.
Tagi
RCEDeserialization
CWE
Referencje

Powiązane podatności

CVE-2022-46366CRITICAL9.8PL ✓ten sam produkt

Apache Tapestry 3.x — RCE przez deserializację niezaufanych danych

CVE-2020-17531CRITICAL9.8PL ✓ten sam produkt

Apache Tapestry 4 — deserializacja parametru 'sp' bez uwierzytelnienia

CVE-2019-0195CRITICAL9.8PL ✓ten sam produkt

Apache Tapestry — RCE przez deserialization po wycieku klucza HMAC

CVE-2019-10071CRITICAL9.8PL ✓ten sam produkt

Apache Tapestry — timing side channel w weryfikacji HMAC prowadzący do RCE

CVE-2026-61899HIGH7.5ten sam produkt

Vulnerability in tapestry-core in Apache Tapestry 5.5.0+ on all platforms allows attackers to download clsspat...