Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book

Cacti Framework znów dotknięty krytyczną podatnością

20 maja 2024, 23:25 | W biegu | 0 komentarzy

Developerzy Cacti nie mają łatwego życia, a ich framework gości na naszych łamach nie po raz pierwszy. Tym razem stało się to za sprawą kilku krytycznych podatności, które zostały załatane w wersji 1.2.27 wydanej 13.05.2024. 

Najwyżej wyceniono dwie podatności prowadzące bezpośrednio do RCE (kolejno: CVE-2024-25641 zostało wycenione na 9.1/10 punktów, natomiast CVE-2024-29895 dostało aż 10/10). 
CVE-2024-29895 to podatność typu command injection, tym razem pozwalająca na wykonanie dowolnej komendy na systemie bez konieczności uwierzytelnienia!

Listing 1. Miejsce wystąpienia drugiej podatności – command injection. (źródło: zgłoszenie)

Tym razem jeden z parametrów wykonywanego polecenia pochodzi tak naprawdę z tzw. “superglobal” variable $SERVER[‘argv’]. W przypadku podatnej konfiguracji PHP pozwalającej na kontrolowanie tej zmiennej przy pomocy URL (włączona opcja register_argc_argv), każdy może wykonać polecenie na serwerze. Wiele środowisk produkcyjnych w tym oficjalne obrazy dockerowe PHP, posiada konfigurację umożliwiającą atak. Zaprezentowany też został PoC uruchamiający kalkulator.

http://localhost/cacti/cmd_realtime.php?1+1&&calc.exe+1+1+1

Rysunek 1. Wykonanie payloadu na podatnym serwerze.

CVE-2024-25641 to również podatność pozwalająca na wykonanie kodu każdemu uwierzytelnionemu użytkownikowi, który posiada uprawnienia importowania szablonów (Import Templates privilege). W przedstawionym w zgłoszeniu listingu wskazano miejsce wystąpienia podatności. Funkcja import_package() nie waliduje w żaden sposób przesyłanych przez użytkownika danych i umożliwia umieszczenie zapisane dowolnych danych w miejscu kontrolowanym przez użytkownika (sekwencje path traversal również przynoszą oczekiwane skutki). To powoduje, że użytkownik może umieścić na serwerze (utworzyć lub nadpisać) plik a następnie go uruchomić.

Listing 2. Wskazujący na miejsce wystąpienia podatności. (źródło: zgłoszenie)

Jakby tego było mało, zgłoszone (i naprawione) zostały też podatności oznaczone jako “high”, np. SQL injection pozwalający na wykonanie kodu lub podniesienie uprawnień przez uwierzytelnionego użytkownika (CVE-2024-31445).

Zbiór zaprezentowanych i poprawionych w wydaniu 1.2.27 błędów powala. Jeśli używacie Cacti to łatajcie się natychmiast. Warto też rozważyć alternatywne rozwiązania, może lepiej zorientowane pod kątem bezpieczeństwa użytkowników.

~fc

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

Odpowiedz