Podatność w Apache Tapestry umożliwia atakującemu zdalne wykonanie kodu Java poprzez atak deserialization na parametr t:formdata. Warunkiem jest wcześniejsze odgadnięcie ścieżki do pliku zawierającego klucz HMAC (tapestry.hmac-passphrase), co możliwe jest dzięki podatności na ujawnienie plików z classpath.
▸ Pokaż oryginał (EN)
Manipulating classpath asset file URLs, an attacker could guess the path to a known file in the classpath and have it downloaded. If the attacker found the file with the value of the tapestry.hmac-passphrase configuration symbol, most probably the webapp's AppModule class, the value of this symbol could be used to craft a Java deserialization attack, thus running malicious injected Java code. The vector would be the t:formdata parameter from the Form component.
Atakujący manipuluje URL-ami do zasobów classpath (classpath asset URLs), aby odgadnąć i pobrać dowolny plik dostępny w classpath aplikacji. Jeśli uda mu się uzyskać wartość symbolu konfiguracyjnego tapestry.hmac-passphrase — najczęściej przechowywanego w klasie AppModule aplikacji — może użyć tego klucza do spreparowania złośliwego, podpisanego payloadu deserialization. Tak przygotowany payload przekazywany jest przez parametr t:formdata komponentu Form, co skutkuje wykonaniem dowolnego kodu Java po stronie serwera.
Atakujący uzyskuje możliwość zdalnego wykonania dowolnego kodu Java na serwerze (RCE) bez konieczności uwierzytelnienia, co może prowadzić do pełnego przejęcia kontroli nad aplikacją i serwerem, ujawnienia danych oraz naruszenia integralności systemu.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Dodatkowo zaleca się zabezpieczenie dostępu do zasobów classpath, aby uniemożliwić nieautoryzowane pobieranie plików konfiguracyjnych zawierających wrażliwe dane, takie jak klucz HMAC.
Apache Tapestry — wersje wskazane w referencjach producenta
Podatność ma charakter dwuetapowy: pierwszym krokiem jest path traversal na zasobach classpath umożliwiający kradzież klucza HMAC, drugim — właściwy atak deserialization. Informacja o podatności pojawiła się na liście oss-security w kwietniu 2021 r., mimo że CVE zostało opublikowane we wrześniu 2019 r.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HApache Tapestry
APPApache5.4.0 – 5.4.3
Powiązane podatności
Apache Tapestry 3.x — RCE przez deserializację niezaufanych danych
Apache Tapestry — RCE przez bypass filtra pobierania plików klasowych
Apache Tapestry 4 — deserializacja parametru 'sp' bez uwierzytelnienia
Apache Tapestry — timing side channel w weryfikacji HMAC prowadzący do RCE
Vulnerability in tapestry-core in Apache Tapestry 5.5.0+ on all platforms allows attackers to download clsspat...