CRITICAL🇬🇧 English

CVE-2024-29895

Cacti 1.3.x DEV — command injection bez uwierzytelnienia w cmd_realtime.php

CVSS 10.0v3.1pub. 2024-05-14upd. 2026-04-15

W gałęzi deweloperskiej 1.3.x frameworka Cacti wykryto krytyczną podatność typu command injection, która pozwala nieuwierzytelnionemu użytkownikowi na zdalne wykonanie dowolnych poleceń na serwerze. Zagrożenie jest szczególnie poważne, ponieważ wymagany do wykorzystania podatności warunek (opcja PHP `register_argc_argv` ustawiona na `On`) jest domyślnie aktywny w wielu popularnych środowiskach, w tym w oficjalnym obrazie Docker dla PHP.

Pokaż oryginał (EN)

Cacti provides an operational monitoring and fault management framework. A command injection vulnerability on the 1.3.x DEV branch allows any unauthenticated user to execute arbitrary command on the server when `register_argc_argv` option of PHP is `On`. In `cmd_realtime.php` line 119, the `$poller_id` used as part of the command execution is sourced from `$_SERVER['argv']`, which can be controlled by URL when `register_argc_argv` option of PHP is `On`. And this option is `On` by default in many environments such as the main PHP Docker image for PHP. Commit 53e8014d1f082034e0646edc6286cde3800c683d contains a patch for the issue, but this commit was reverted in commit 99633903cad0de5ace636249de16f77e57a3c8fc.

🤖 Analiza AI
Jak działa

Podatność tkwi w pliku `cmd_realtime.php` (linia 119), gdzie zmienna `$poller_id` jest pobierana ze zmiennej superglobalnej `$_SERVER['argv']` i bez odpowiedniej walidacji przekazywana do funkcji wykonującej polecenie systemowe. Gdy opcja PHP `register_argc_argv` jest włączona, zawartość tej zmiennej może być kontrolowana przez atakującego za pomocą parametrów przekazanych w adresie URL żądania HTTP. Co istotne, poprawka dla tego problemu (commit 53e8014d) została wprowadzona, a następnie wycofana w późniejszym commicie (99633903), co oznacza, że podatność ponownie istnieje w kodzie.

Skutki

Nieuwierzytelniony atakujący zdalny może wykonać dowolne polecenia systemowe z uprawnieniami procesu serwera WWW, co może prowadzić do pełnego przejęcia kontroli nad serwerem, wycieku danych oraz naruszenia poufności, integralności i dostępności systemu.

Mitygacja

Należy zastosować patche dostępne u producenta zgodnie z referencjami (GitHub Security Advisory GHSA-cr28-x256-xf5m). Do czasu zastosowania poprawki zaleca się ustawienie opcji `register_argc_argv = Off` w konfiguracji PHP oraz ograniczenie dostępu do instancji Cacti wyłącznie do zaufanych adresów IP. Należy monitorować status commita naprawiającego podatność, ponieważ poprzednia poprawka (commit 53e8014d) została wycofana.

Kogo dotyczy

Cacti w gałęzi deweloperskiej 1.3.x (DEV branch), na serwerach z włączoną opcją PHP `register_argc_argv` (domyślnie włączoną m.in. w oficjalnym obrazie Docker dla PHP)

Uwagi

Poprawka dla podatności (commit 53e8014d1f082034e0646edc6286cde3800c683d) została już raz wprowadzona do repozytorium, a następnie cofnięta commitem 99633903cad0de5ace636249de16f77e57a3c8fc — co wskazuje na ryzyko ponownego pojawienia się błędu przy kolejnych aktualizacjach kodu. Podatność dotyczy wyłącznie niestabilnej gałęzi deweloperskiej 1.3.x, nie stabilnych wydań produkcyjnych.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
Container
CWE
Referencje