W Cacti w wersjach 1.2.30 i wcześniejszych parametr rfilter nie jest odpowiednio walidowany, co umożliwia nieuwierzytelnionemu atakującemu wstrzyknięcie dowolnego kodu SQL. Podatność jest szczególnie groźna, ponieważ punkt wejścia jest dostępny bez uwierzytelnienia na instalacjach z włączonym gościnnym przeglądaniem wykresów.
▸ Pokaż oryginał (EN)
Cacti is an open source performance and fault management framework. In versions 1.2.30 and prior, the rfilter request parameter is retrieved via the raw accessor grv() (rather than gfrv() with FILTER_VALIDATE_IS_REGEX validation) and concatenated directly into RLIKE SQL clauses in lib/html_graph.php and lib/html_tree.php, which are reachable pre-authentication through graph_view.php on installations with guest graph viewing enabled. Because the unbalanced-quote payload bypasses the regex validation that would otherwise reject it, an unauthenticated attacker can inject arbitrary SQL to compromise the confidentiality, integrity, and availability of the database. This advisory is similar to GHSA-69gg-mjfm-jjpc. This issue has been fixed in version 1.2.31.
Parametr żądania rfilter jest pobierany przez niefiltrujący akcesor grv() zamiast gfrv() z walidacją FILTER_VALIDATE_IS_REGEX. Wartość parametru jest następnie bezpośrednio konkatenowana do klauzul SQL RLIKE w plikach lib/html_graph.php oraz lib/html_tree.php. Payload z niezbalansowanym cudzysłowem omija walidację wyrażeń regularnych, która normalnie odrzuciłaby złośliwe dane wejściowe. Atak jest możliwy do przeprowadzenia bez uwierzytelnienia poprzez endpoint graph_view.php.
Nieuwierzytelniony atakujący może wstrzyknąć dowolny kod SQL, prowadząc do naruszenia poufności i integralności danych bazy danych oraz potencjalnego przejęcia kontroli nad wrażliwymi informacjami przechowywanymi przez aplikację.
Należy zaktualizować Cacti do wersji 1.2.31, w której podatność została naprawiona. Jako obejście tymczasowe można rozważyć wyłączenie opcji gościnnego przeglądania wykresów, aby ograniczyć dostęp pre-authentication do podatnego endpointu.
Cacti w wersji 1.2.30 i wcześniejszych, na instalacjach z włączoną opcją gościnnego przeglądania wykresów (guest graph viewing).
Podatność jest podobna do wcześniej zgłoszonego problemu GHSA-69gg-mjfm-jjpc. Poprawka dostępna w commicie 136ae6ef0715e77bca69c0eb60781f5e17df0795 w repozytorium GitHub projektu Cacti.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XCacti
APPCacti< 1.2.31
Powiązane podatności
Cacti is an open source platform which provides a robust and extensible operational monitoring and fault manag...
Niezautoryzowany path traversal i command injection w Cacti (LFI)
SQL Injection przed uwierzytelnieniem w Cacti (graph_view.php)
SQL Injection w Cacti — atak bez uwierzytelnienia przez parametr rfilter
Cacti: Command Injection przez malformowane OID w parserze SNMP