Unauthenticated Command Injection
Cacti is an open source platform which provides a robust and extensible operational monitoring and fault management framework for users. In affected versions a command injection vulnerability allows an unauthenticated user to execute arbitrary code on a server running Cacti, if a specific data source was selected for any monitored device. The vulnerability resides in the `remote_agent.php` file. This file can be accessed without authentication. This function retrieves the IP address of the client via `get_client_addr` and resolves this IP address to the corresponding hostname via `gethostbyaddr`. After this, it is verified that an entry within the `poller` table exists, where the hostname corresponds to the resolved hostname. If such an entry was found, the function returns `true` and the client is authorized. This authorization can be bypassed due to the implementation of the `get_client_addr` function. The function is defined in the file `lib/functions.php` and checks serval `$_SERVER` variables to determine the IP address of the client. The variables beginning with `HTTP_` can be arbitrarily set by an attacker. Since there is a default entry in the `poller` table with the hostname of the server running Cacti, an attacker can bypass the authentication e.g. by providing the header `Forwarded-For: <TARGETIP>`. This way the function `get_client_addr` returns the IP address of the server running Cacti. The following call to `gethostbyaddr` will resolve this IP address to the hostname of the server, which will pass the `poller` hostname check because of the default entry. After the authorization of the `remote_agent.php` file is bypassed, an attacker can trigger different actions. One of these actions is called `polldata`. The called function `poll_for_data` retrieves a few request parameters and loads the corresponding `poller_item` entries from the database. If the `action` of a `poller_item` equals `POLLER_ACTION_SCRIPT_PHP`, the function `proc_open` is used to execute a PHP script. The attacker-controlled parameter `$poller_id` is retrieved via the function `get_nfilter_request_var`, which allows arbitrary strings. This variable is later inserted into the string passed to `proc_open`, which leads to a command injection vulnerability. By e.g. providing the `poller_id=;id` the `id` command is executed. In order to reach the vulnerable call, the attacker must provide a `host_id` and `local_data_id`, where the `action` of the corresponding `poller_item` is set to `POLLER_ACTION_SCRIPT_PHP`. Both of these ids (`host_id` and `local_data_id`) can easily be bruteforced. The only requirement is that a `poller_item` with an `POLLER_ACTION_SCRIPT_PHP` action exists. This is very likely on a productive instance because this action is added by some predefined templates like `Device - Uptime` or `Device - Polling Time`. This command injection vulnerability allows an unauthenticated user to execute arbitrary commands if a `poller_item` with the `action` type `POLLER_ACTION_SCRIPT_PHP` (`2`) is configured. The authorization bypass should be prevented by not allowing an attacker to make `get_client_addr` (file `lib/functions.php`) return an arbitrary IP address. This could be done by not honoring the `HTTP_...` `$_SERVER` variables. If these should be kept for compatibility reasons it should at least be prevented to fake the IP address of the server running Cacti. This vulnerability has been addressed in both the 1.2.x and 1.3.x release branches with `1.2.23` being the first release containing the patch.
- Yayın
- 5 Ara 2022
- Güncelleme
- 17 Haz 2026
- EPSS
- %99,8 · 100. yüzdelik
- CWE
- CWE-74
Takip etmek için giriş yap · Takip ettiğin kayıt KEV’e girer, istismarı çıkar ya da güncellenirse bildirim alırsın.
Rapor araçları
Aksiyon skoru
99
Hemen
Bugün yamayın ya da erişimi kapatın.
- CVSS
- 39 / 40 · 9.8 / 10
- CISA KEV
- 30 / 30 · Listede
- EPSS
- 30 / 30 · %99,8
CISA SSVC kararı
- Sömürü
- aktif
- Otomatikleştirilebilir
- hayır
- Teknik etki
- tam
Vulnrichment: CISA'nın karar ağacı girdileri.
CNA ile NVD puanı
- NVD
- 9,8
- CNA · GitHub_M
- 9,8
- uyumlu
Kaydı açan otoritenin puanı ile NVD’nin bağımsız puanı. İki puan arasındaki fark ciddiyetin tartışmalı olduğunu gösterir.
Sahada aktif sömürülüyor
CISA bu zafiyeti 16 Şub 2023 tarihinde fiilen sömürülen zafiyetler kataloğuna (KEV) ekledi. Bu, teoriyi değil, gerçek saldırıları işaret eder.
Kamu kurumları için son yama tarihi: 9 Mar 2023.
Etkilenen sistemler
| Üretici | Ürün | CPE |
|---|---|---|
| cacti | cacti | cpe:2.3:a:cacti:cacti |
Etkilenen sürümler
NVD sürüm aralıkları (katalogdaki ürünler için). Stack’ine sürümle eklersen eşleşme bunlarla yapılır.
- cacti cacti1.2.23 öncesi
Üreticinin bildirdiği sürümler
Kaydı açan otorite (GitHub_M) tarafından bildirilen etkilenen sürüm aralıkları. NVD'nin CPE analizinden bağımsızdır ve genellikle ondan önce gelir.
Cacti cacti
- < 1.2.23etkilenir
Paket düzeyi etkilenme
OSV ve GitHub Advisory verisi: ekosistem, paket ve aralık. SBOM eşleşmesi bu tabloyu kullanır.
| Ekosistem | Paket | Etkilenen aralık | Düzeltme |
|---|---|---|---|
| Debian:10 | cacti | 1.2.2+ds1-2+deb10u5 öncesi | 1.2.2+ds1-2+deb10u5 |
| Debian:11 | cacti | 1.2.16+ds1-2+deb11u1 öncesi | 1.2.16+ds1-2+deb11u1 |
| Debian:12 | cacti | 1.2.22+ds1-3 öncesi | 1.2.22+ds1-3 |
| openSUSE:Tumbleweed | cacti | 1.2.23-1.1 öncesi | 1.2.23-1.1 |
| SUSE:Package Hub 12 | cacti | 1.2.23-bp154.2.6.1 öncesi | 1.2.23-bp154.2.6.1 |
| SUSE:Package Hub 12 | cacti | 1.2.23-bp154.2.6.1 öncesi | 1.2.23-bp154.2.6.1 |
| SUSE:Package Hub 12 | cacti-spine | 1.2.23-bp154.2.6.1 öncesi | 1.2.23-bp154.2.6.1 |
| SUSE:Package Hub 12 | cacti-spine | 1.2.23-bp154.2.6.1 öncesi | 1.2.23-bp154.2.6.1 |
Aynı üründe
cacti: tüm kayıtlarAynı birincil ürünün en yüksek skorlu diğer kayıtları.
- CVE-2024-29895Cacti command injection in cmd_realtime.php70Bu hafta
- CVE-2023-39361Unauthenticated SQL Injection in graph_view.php in Cacti66Bu hafta
- CVE-2023-49085Cacti SQL Injection vulnerability57Planlayın
- CVE-2020-8813graph_realtime.php in Cacti 1.2.8 allows remote attackers to execute arbitrary OS commands via shell metacharacters in a cookie, if a guest 57Planlayın
- CVE-2023-51448SQL Injection vulnerability when managing SNMP Notification Receivers55Planlayın
- CVE-2024-25641Cacti RCE vulnerability when importing packages54Planlayın
Düzeltme
Hangi sürüme geçmeli
Üretici, paket deposu ve Microsoft kayıtlarından derlenen düzeltme sürümleri. Yükseltmeden önce üreticinin notunu doğrulayın.
| Ürün / paket | Düzeltilmiş sürüm | Kaynak |
|---|---|---|
| Debian:cacti | 1.2.22+ds1-3 · Debian:12 | Paket deposu (OSV) |
| openSUSE:cacti | 1.2.23-bp154.2.6.1 · openSUSE:Leap 15.4 | Paket deposu (OSV) |
| openSUSE:cacti-spine | 1.2.23-bp154.2.6.1 · openSUSE:Leap 15.4 | Paket deposu (OSV) |
| SUSE:cacti | 1.2.23-bp154.2.6.1 · SUSE:Package Hub 12 | Paket deposu (OSV) |
| SUSE:cacti-spine | 1.2.23-bp154.2.6.1 · SUSE:Package Hub 12 | Paket deposu (OSV) |
İstismar durumu
Silahlaştırılmış
Bu zafiyet için hazır bir istismar aracı ya da sahada aktif kullanım biliniyor. Önceliğiniz en üst düzeyde olmalı.
Kanıt
- Metasploit modülü ×1
- Exploit-DB kaydı ×1
- Nuclei tespit şablonu ×1
- GitHub’da kavram kanıtı deposu ×36
Noroxi istismar kodu barındırmaz ve istismar bağlantısı vermez. Metasploit modül adı ve Nuclei şablon kimliği gösterilir (kod değil, ad); Exploit-DB kayıtları ve PoC depoları yalnızca sayı olarak verilir.
| Kaynak | Tür | Tarih |
|---|---|---|
| Exploit-DB kaydı | webapps | 2023-03-31 |
| Metasploit modülü | exploit/linux/http/cacti_unauthenticated_cmd_injectionCacti 1.2.22 unauthenticated command injectionexploit | 2022-12-05 |
| Nuclei tespit şablonu | Nuclei şablonu CVE-2022-46169 | — |
| GitHub’da kavram kanıtı deposu | stars:0 | 2022-12-07 |
| GitHub’da kavram kanıtı deposu | stars:47 | 2022-12-08 |
| GitHub’da kavram kanıtı deposu | stars:1 | 2022-12-16 |
| GitHub’da kavram kanıtı deposu | stars:3 | 2023-01-02 |
| GitHub’da kavram kanıtı deposu | stars:29 | 2023-01-05 |
| GitHub’da kavram kanıtı deposu | stars:9 | 2023-01-13 |
| GitHub’da kavram kanıtı deposu | stars:2 | 2023-01-15 |
| GitHub’da kavram kanıtı deposu | stars:3 | 2023-01-16 |
| GitHub’da kavram kanıtı deposu | stars:0 | 2023-02-02 |
Araştırma bağlamı
Pentester ve araştırmacı için: saldırı profili, puan anlaşmazlığı, zaman çizelgesi, yama commit’leri, kredi, varyant ve zincir adayları, bug bounty kapsamı. Hepsi mevcut veriden türetilir; istismar kodu içermez.
Zaman çizelgesi
Yayından bugüne: kavram kanıtı, Metasploit modülü, CISA KEV ve düzeltme kaydı. Tarihler kaynakların bildirdiği tarihlerdir.
- Metasploit-1 gün
- Yayın
- İlk kavram kanıtı+1 gün
- CISA KEV+72 gün
- Bugün29 Eyl 2026+1394 gün
FIRST EPSS günlük puanı; yalnızca 0,01 ve üstü değişimler kaydedilir (adım grafiği).
Yama ve commit bağlantıları
Referanslardaki commit, PR ve diff adresleri. Patch-diff ve varyant avı için başlangıç noktası; istismar değil, düzeltmedir.
Kredi
Tüm araştırmacılarCNA kaydında adı geçen bulan, bildiren ve analistler. Ada tıkla, aynı araştırmacının diğer kayıtlarını gör.
CNA kaydında kredi yok.
Varyant adayları
Aynı üründe aynı zafiyet sınıfı, 18 ay içinde. Yama kök nedeni kapatmadıysa kardeş hata burada olur.
Gece hesaplanan ilişki yok.
Zincir adayları
Aynı üründe kimlik doğrulama atlatma ile yetki isteyen bir açık kısa aralıkla yayımlanmış: birlikte kimlik doğrulamasız bir yola dönüşebilir.
—
Bug bounty kapsamı
Bilinen herkese açık program yok.
Kaynak: bounty-targets-data (HackerOne, Bugcrowd, Intigriti, YesWeHack herkese açık listeleri).
Teknik detay
Saldırı koşulları
- İnternetten erişebilen herkes tetikleyebilir.
- Hesap ya da parola gerekmez.
- Kullanıcının bir şey yapması gerekmez.
- Özel bir koşul gerekmez; tekrarlanabilir.
Başarılı olursa
- Gizlilik
- yüksek · veriler okunabilir
- Bütünlük
- yüksek · veri ya da yapılandırma değiştirilebilir
- Erişilebilirlik
- yüksek · hizmet durdurulabilir
- Saldırı vektörü
- Ağ
- Karmaşıklık
- Düşük
- Gereken yetki
- Yok
- Kullanıcı etkileşimi
- Gerekmez
- Kapsam
- Değişmez
- Gizlilik etkisi
- Yüksek
- Bütünlük etkisi
- Yüksek
- Erişilebilirlik etkisi
- Yüksek
Zayıflık sınıfı (CWE)
CWE-74 · Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')CVSS vektörü
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
nvd-primary
Saldırı bağlamı
Bu zafiyet sınıfının (CWE) MITRE CAPEC saldırı desenleri ve ATT&CK teknikleri. Tespit kuralı ve tehdit avı için başlangıç noktası.
Saldırı desenleri (CAPEC)
- Buffer Overflow via Environment VariablesCAPEC-10olasılık: High · High
- Server Side Include (SSI) InjectionCAPEC-101olasılık: High · High
- HTTP Request SplittingCAPEC-105olasılık: Medium · High
- Command Line Execution through SQL InjectionCAPEC-108olasılık: Low · Very High
- Double EncodingCAPEC-120olasılık: Low · Medium
- Subverting Environment Variable ValuesCAPEC-13olasılık: High · Very High
- Format String InjectionCAPEC-135olasılık: High · High
- Client-side Injection-induced Buffer OverflowCAPEC-14olasılık: Medium · High
Noroxi analizi
Bu kayıt için henüz Noroxi analizi yok
385 binden fazla zafiyetin tamamına elle analiz yazmıyoruz; bu dürüst olmazdı. Öne çıkan ve sahada etkisi olan zafiyetler için mekanizma, tespit ve kapatma adımlarını ekibimiz yazıyor.
Bu ürünü kullanıyoruz, yardım isteyinDeğişiklik günlüğü
- Düzeltme✗ → ✓
Takip ettiğiniz kayıtlarda bu değişiklikler bildirim olarak da gelir. →
Referanslar
- github.com/Cacti/cacti/commit/7f0e16312dd5ce20f93744ef8b9c3b0f1ece2216
- github.com/Cacti/cacti/commit/a8d59e8fa5f0054aa9c6981b1cbe30ef0e2a0ec9
- github.com/Cacti/cacti/commit/b43f13ae7f1e6bfe4e8e56a80a7cd867cf2db52b
- www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2022-46169
Üretici bildirimleri ve resmî kayıtlar. İstismar/PoC bağlantıları bilinçli olarak dışarıda bırakıldı.