CVE-2022-46169

KritikAktiv istismar edilir (CISA KEV)

Təsvir

Cacti istifadəçilər üçün güclü və genişləndirilə bilən əməliyyat monitorinqi və nasazlıqların idarə edilməsi çərçivəsi təmin edən açıq mənbəli platformadır. Təsirə məruz qalan versiyalarda, hər hansı bir monitorinq olunan cihaz üçün xüsusi məlumat mənbəyi seçildikdə, komanda inyeksiyası zəifliyi autentifikasiya olunmamış istifadəçiyə Cacti işlədən serverdə ixtiyari kodun icrasına imkan verir. Zəiflik `remote_agent.php` faylında yerləşir. Bu fayla autentifikasiyasız daxil olmaq mümkündür. Funksiya `get_client_addr` vasitəsilə klientin IP ünvanını əldə edir və bu IP ünvanını `gethostbyaddr` vasitəsilə müvafiq host adına çevirir. Bundan sonra, `poller` cədvəlində host adının həll edilmiş host adına uyğun gəldiyi bir qeydin mövcudluğu yoxlanılır. Belə bir qeyd tapılarsa, funksiya `true` qaytarır və klient avtorizasiya edilir. `get_client_addr` funksiyasının tətbiqi səbəbindən bu avtorizasiyadan yan keçmək mümkündür. Funksiya `lib/functions.php` faylında təyin edilib və klientin IP ünvanını müəyyən etmək üçün bir neçə `$_SERVER` dəyişənini yoxlayır. `HTTP_` ilə başlayan dəyişənlər hücumçu tərəfindən ixtiyari şəkildə təyin edilə bilər. `poller` cədvəlində Cacti işlədən serverin host adı ilə standart qeyd olduğu üçün, hücumçu, məsələn, `Forwarded-For: <TARGETIP>` başlığını təqdim etməklə autentifikasiyadan yan keçə bilər. Bu yolla `get_client_addr` funksiyası Cacti işlədən serverin IP ünvanını qaytarır. Növbəti `gethostbyaddr` çağırışı bu IP ünvanını serverin host adına çevirəcək və standart qeyd sayəsində `poller` host adı yoxlamasından keçəcək. `remote_agent.php` faylının avtorizasiyası keçildikdən sonra hücumçu müxtəlif hərəkətləri tetikleyə bilər. Bu hərəkətlərdən biri `polldata` adlanır. Çağırılan `poll_for_data` funksiyası bir neçə sorğu parametrini əldə edir və verilənlər bazasından müvafiq `poller_item` qeydlərini yükləyir. Əgər `poller_item`-in `action` parametri `POLLER_ACTION_SCRIPT_PHP`-yə bərabərdirsə, PHP skriptini icra etmək üçün `proc_open` funksiyasından istifadə olunur. Hücumçunun nəzarətində olan `$poller_id` parametri ixtiyari sətirlərə icazə verən `get_nfilter_request_var` funksiyası vasitəsilə əldə edilir. Bu dəyişən daha sonra `proc_open`-ə ötürülən sətirə daxil edilir ki, bu da komanda inyeksiyası zəifliyinə səbəb olur. Məsələn, `poller_id=;id` təqdim etməklə `id` komandası icra edilir. Zəif çağırışa çatmaq üçün hücumçu `host_id` və `local_data_id` təqdim etməlidir və burada müvafiq `poller_item`-in `action` parametrləri `POLLER_ACTION_SCRIPT_PHP` olaraq təyin edilmiş olmalıdır. Hər iki ID (`host_id` və `local_data_id`) asanlıqla brute-force üsulu ilə tapıla bilər. Yeganə tələb `POLLER_ACTION_SCRIPT_PHP` hərəkətinə malik bir `poller_item`-in mövcud olmasıdır. İstehsalat mühiti nümunələrində bu çox ehtimaldır, çünki bu hərəkət `Device - Uptime` və ya `Device - Polling Time` kimi bəzi öncədən təyin edilmiş şablonlar tərəfindən əlavə edilir. Bu komanda inyeksiyası zəifliyi, əgər `action` tipi `POLLER_ACTION_SCRIPT_PHP` (`2`) olan bir `poller_item` konfiqurasiya edilibsə, autentifikasiya olunmamış istifadəçiyə ixtiyari komandaların icrasına imkan verir. Avtorizasiyadan yan keçmənin qarşısı, hücumçunun `get_client_addr` (`lib/functions.php` faylı) funksiyasının ixtiyari IP ünvanı qaytarmasına icazə verməməklə qarşı alınmalıdır. Bu, `HTTP_...` `$_SERVER` dəyişənlərinin nəzərə alınmaması ilə həyata keçirilə bilər. Uyğunluq səbəbləri ilə bunlar saxlanılmalısa, ən azı Cacti işlədən serverin IP ünvanının saxtalaşdırılmasının qarşısı alınmalıdır. Bu zəiflik həm 1.2.x, həm də 1.3.x buraxılış budaqlarında aradan qaldırılmışdır və yamu ehtiva edən ilk buraxılış `1.2.23` versiyasıdır.

CiddilikKritik
CVSS9.8
İstismar ehtimalı—
MəhsulCacti
Dərc5 dek 2022
İlk görülmə5 dek 2022
KEV-ə əlavə16 fev 2023
Zəiflik növüCWE-74İnyeksiya

Necə düzəltmək olar

CISA-nın tələb etdiyi tədbir

İstehsalçının dərc etdiyi yeniləmələri tətbiq edin.

CISA son tarixi: 9 mar 2023
Yeniləyin
  • cacti cacti1.2.23 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
cacti cactiv < 1.2.231.2.23

Versiyanızı yoxlayın

Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.

Intelligence 360 paketində

Attack Surface Management

Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.

CVE-2022-46169 · Cacti · Dark Radar