Перейти к содержимому
Noroxi
CVE-2022-46169· NVD / CVE Program· CNA GitHub_M

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.

КритическаяCVSS 9.8 · v3.1KEVГотовый эксплойт Есть исправление
Опубликовано
5 дек. 2022 г.
Обновлено
17 июн. 2026 г.
EPSS
99,8 % · 100-й процентиль
Следить за этой CVE

Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.

Инструменты для отчёта

JSON

Оценка срочности

99

Срочно

Установите исправление сегодня или закройте доступ.

CVSS
39 / 40 · 9.8 / 10
CISA KEV
30 / 30 · В списке
EPSS
30 / 30 · 99,8 %

Решение CISA SSVC

Эксплуатация
активная
Автоматизируемо
нет
Техническое влияние
полное

Vulnrichment: входные данные дерева решений CISA.

Оценка CNA и NVD

NVD
9,8
CNA · GitHub_M
9,8
совпадают

Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.

Активно эксплуатируется

CISA добавило это в каталог активно эксплуатируемых уязвимостей (KEV) 16 февр. 2023 г.. Это указывает на реальные атаки, а не теорию.

Срок устранения для госорганов: 9 мар. 2023 г..

Затронутые системы

ВендорПродукт
cacticacti

Затронутые версии

Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.

  • cacti cactiдо 1.2.23

Версии, заявленные вендором

Диапазоны затронутых версий, заявленные назначающей организацией (GitHub_M). Не зависят от анализа CPE в NVD и обычно опережают его.

  • Cacti cacti

    • < 1.2.23затронута

Затронутые пакеты

Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.

ЭкосистемаПакетЗатронутый диапазонИсправление
Debian:10cactiдо 1.2.2+ds1-2+deb10u51.2.2+ds1-2+deb10u5
Debian:11cactiдо 1.2.16+ds1-2+deb11u11.2.16+ds1-2+deb11u1
Debian:12cactiдо 1.2.22+ds1-31.2.22+ds1-3
openSUSE:Tumbleweedcactiдо 1.2.23-1.11.2.23-1.1
SUSE:Package Hub 12cactiдо 1.2.23-bp154.2.6.11.2.23-bp154.2.6.1
SUSE:Package Hub 12cactiдо 1.2.23-bp154.2.6.11.2.23-bp154.2.6.1
SUSE:Package Hub 12cacti-spineдо 1.2.23-bp154.2.6.11.2.23-bp154.2.6.1
SUSE:Package Hub 12cacti-spineдо 1.2.23-bp154.2.6.11.2.23-bp154.2.6.1

Тот же продукт

cacti: все записи

Другие записи с наивысшей оценкой для того же основного продукта.

  • CVE-2024-29895Cacti command injection in cmd_realtime.php
    70На этой неделе
  • CVE-2023-39361Unauthenticated SQL Injection in graph_view.php in Cacti
    66На этой неделе
  • CVE-2023-49085Cacti SQL Injection vulnerability
    57В плане
  • 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
    57В плане
  • CVE-2023-51448SQL Injection vulnerability when managing SNMP Notification Receivers
    55В плане
  • CVE-2024-25641Cacti RCE vulnerability when importing packages
    54В плане

Исправление

На какую версию обновиться

Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.

Продукт / пакетИсправленная версияИсточник
Debian:cacti1.2.22+ds1-3 · Debian:12Реестр пакетов (OSV)
openSUSE:cacti1.2.23-bp154.2.6.1 · openSUSE:Leap 15.4Реестр пакетов (OSV)
openSUSE:cacti-spine1.2.23-bp154.2.6.1 · openSUSE:Leap 15.4Реестр пакетов (OSV)
SUSE:cacti1.2.23-bp154.2.6.1 · SUSE:Package Hub 12Реестр пакетов (OSV)
SUSE:cacti-spine1.2.23-bp154.2.6.1 · SUSE:Package Hub 12Реестр пакетов (OSV)

Статус эксплойта

Готовый эксплойт

Известен готовый инструмент или активное использование в реальных атаках. Это должно быть высшим приоритетом.

Доказательство

  • Модуль Metasploit ×1
  • Запись Exploit-DB ×1
  • Шаблон обнаружения Nuclei ×1
  • Репозиторий PoC на GitHub ×36

Noroxi не размещает код эксплойтов и не даёт на них ссылок. Показываются имена модулей Metasploit и идентификаторы шаблонов Nuclei (имена, не код); записи Exploit-DB и репозитории PoC даются только числом.

Публичные свидетельства эксплойта
ИсточникТипДата
Запись Exploit-DBwebapps2023-03-31
Модуль Metasploitexploit/linux/http/cacti_unauthenticated_cmd_injectionCacti 1.2.22 unauthenticated command injectionexploit2022-12-05
Шаблон обнаружения NucleiШаблон Nuclei CVE-2022-46169 —
Репозиторий PoC на GitHubstars:02022-12-07
Репозиторий PoC на GitHubstars:472022-12-08
Репозиторий PoC на GitHubstars:12022-12-16
Репозиторий PoC на GitHubstars:32023-01-02
Репозиторий PoC на GitHubstars:292023-01-05
Репозиторий PoC на GitHubstars:92023-01-13
Репозиторий PoC на GitHubstars:22023-01-15
Репозиторий PoC на GitHubstars:32023-01-16
Репозиторий PoC на GitHubstars:02023-02-02

Контекст для исследователя

Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.

Хронология

От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.

  1. Metasploit-1 дн.
  2. Публикация
  3. Первый PoC+1 дн.
  4. CISA KEV+72 дн.
  5. Сегодня29 сент. 2026 г.+1394 дн.
EPSS за 120 дней

Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).

Ссылки на патчи и коммиты

Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.

Нашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.

В записи CNA нет авторов.

Кандидаты в варианты

Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.

Ночной расчёт связей ничего не нашёл.

Кандидаты в цепочки

Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.

—

Охват bug bounty

Известной публичной программы нет.

Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).

Технические детали

Условия атаки

  • Может быть вызвана любым, у кого есть доступ через интернет.
  • Учётная запись или пароль не требуются.
  • Действия пользователя не требуются.
  • Особые условия не требуются; воспроизводится стабильно.

В случае успеха

Конфиденциальность
высокое · данные могут быть прочитаны
Целостность
высокое · данные или конфигурация могут быть изменены
Доступность
высокое · работа сервиса может быть нарушена
Вектор атаки
Сеть
Сложность атаки
Низкая
Требуемые привилегии
Не требуются
Взаимодействие с пользователем
Не требуется
Область действия
Не изменяется
Влияние на конфиденциальность
Высокое
Влияние на целостность
Высокое
Влияние на доступность
Высокое

Вектор CVSS

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

nvd-primary

Анализ Noroxi

Анализа Noroxi для этой записи пока нет

Мы не пишем анализ вручную для всех 385 000+ уязвимостей; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.

Мы используем этот продукт, нужна помощь

Журнал изменений

  1. Исправление✗ → ✓

Для отслеживаемых записей эти изменения приходят и как уведомления. →

Источники

Все записи