Podatność typu path traversal w funkcji `LockManager.release_locks` aplikacji Aimstack Aim pozwala nieuwierzytelnionemu atakującemu na usunięcie dowolnego pliku na serwerze. Ze względu na brak normalizacji parametru `run_hash` kontrolowanego przez użytkownika, możliwe jest wyjście poza dozwolony katalog i wskazanie dowolnej ścieżki do usunięcia.
▸ Pokaż oryginał (EN)
A vulnerability in the `LockManager.release_locks` function in aimhubio/aim (commit bb76afe) allows for arbitrary file deletion through relative path traversal. The `run_hash` parameter, which is user-controllable, is concatenated without normalization as part of a path used to specify file deletion. This vulnerability is exposed through the `Repo._close_run()` method, which is accessible via the tracking server instruction API. As a result, an attacker can exploit this to delete any arbitrary file on the machine running the tracking server.
Parametr `run_hash`, który jest dostarczany przez użytkownika, jest bezpośrednio konkatenowany z ścieżką pliku bez wcześniejszej normalizacji lub walidacji. Umożliwia to atakującemu wprowadzenie sekwencji path traversal (np. `../../`) w celu wyjścia poza przeznaczony katalog i wskazania dowolnego pliku w systemie plików. Podatna ścieżka kodu jest osiągalna poprzez metodę `Repo._close_run()`, eksponowaną przez API instrukcji serwera śledzenia (tracking server). Atak nie wymaga uwierzytelnienia ani żadnej interakcji po stronie użytkownika.
Atakujący może usunąć dowolny plik dostępny dla procesu serwera śledzenia, co może prowadzić do poważnych zakłóceń działania systemu, utraty danych, a nawet całkowitego uniemożliwienia pracy serwera poprzez usunięcie kluczowych plików konfiguracyjnych lub systemowych.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Zaleca się ograniczenie dostępu do API serwera śledzenia wyłącznie do zaufanych hostów na poziomie firewall oraz monitorowanie podejrzanych operacji na systemie plików.
Aimstack Aim (commit bb76afe); wersje wskazane w referencjach producenta
Szczegóły podatności zostały opublikowane na platformie huntr.com (bounty ID: 59d3472f-f581-4beb-a090-afd36a00ecf7). Podatny kod zidentyfikowany w konkretnym commicie: bb76afe.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:HAimstack Aim
APPAimstack< 3.24.0
Powiązane podatności
CSRF w Aimstack Aim — łańcuch podatności z RCE i DoS
Path traversal w Aimstack Aim – zapis plików w dowolnej lokalizacji serwera
Nadpisywanie plików i RCE w Aimstack Aim przez funkcję _backup_run
RCE w Aimstack Aim – wykonanie kodu przez parametr query w API
Path Traversal in restore_run_backup() in AIM 3.28.0 allows remote attackers to write arbitrary files to the s...