Cacti Request Parameter remote_agent.php escalada de privilegios
| CVSS Puntuación meta temporal | Precio actual del exploit (≈) | Puntuación de interés CTI |
|---|---|---|
| 8.9 | $0-$5k | 0.00 |
Resumen
Una vulnerabilidad ha sido encontrada en Cacti y clasificada como crítica. Se ve afectada una función desconocida del archivo remote_agent.php del componente Request Parameter Handler. A través de la manipulación de un input desconocido se causa una vulnerabilidad de clase escalada de privilegios. Esta vulnerabilidad se registra como CVE-2022-46169. El ataque puede ser realizado a través de la red. También se encuentra disponible un exploit. Se sugiere actualizar el componente afectado.
Detalles
Una vulnerabilidad clasificada como crítica fue encontrada en Cacti (Log Management Software). Una función desconocida del archivo remote_agent.php del componente Request Parameter Handler es afectada por esta vulnerabilidad. Por la manipulación de un input desconocido se causa una vulnerabilidad de clase escalada de privilegios. Los efectos exactos de un ataque exitoso no son conocidos. El resumen de CVE es:
Cacti es una plataforma de código abierto que proporciona un framework de gestión de fallos y supervisión operativa robusta y extensible para los usuarios. En las versiones afectadas, una vulnerabilidad de inyección de comandos permite a un usuario no autenticado ejecutar código arbitrario en un servidor que ejecuta Cacti, si se seleccionó una fuente de datos específica para cualquier dispositivo monitoreado. La vulnerabilidad reside en el archivo `remote_agent.php`. Se puede acceder a este archivo sin autenticación. Esta función recupera la dirección IP del cliente a través de `get_client_addr` y resuelve esta dirección IP en el nombre de host correspondiente a través de `gethostbyaddr`. Después de esto, se verifica que existe una entrada dentro de la tabla `poller`, donde el nombre de host corresponde al nombre de host resuelto. Si se encuentra dicha entrada, la función devuelve "verdadero" y el cliente está autorizado. Esta autorización se puede omitir debido a la implementación de la función `get_client_addr`. La función se define en el archivo `lib/functions.php` y verifica las variables serval `$_SERVER` para determinar la dirección IP del cliente. Un atacante puede establecer arbitrariamente las variables que comienzan con `HTTP_`. Dado que hay una entrada predeterminada en la tabla `poller` con el nombre de host del servidor que ejecuta Cacti, un atacante puede omitir la autenticación, por ejemplo, proporcionando el encabezado `Forwarded-For: `. De esta forma, la función `get_client_addr` devuelve la dirección IP del servidor que ejecuta Cacti. La siguiente llamada a `gethostbyaddr` resolverá esta dirección IP en el nombre de host del servidor, que pasará la verificación del nombre de host `poller` debido a la entrada predeterminada. Después de omitir la autorización del archivo `remote_agent.php`, un atacante puede desencadenar diferentes acciones. Una de estas acciones se llama "polldata". La función llamada `poll_for_data` recupera algunos parámetros de solicitud y carga las entradas correspondientes de `poller_item` de la base de datos. Si la `acción` de un `poller_item` es igual a `POLLER_ACTION_SCRIPT_PHP`, la función `proc_open` se usa para ejecutar un script PHP. El parámetro controlado por el atacante `$poller_id` se recupera mediante la función `get_nfilter_request_var`, que permite cadenas arbitrarias. Esta variable luego se inserta en la cadena pasada a `proc_open`, lo que genera una vulnerabilidad de inyección de comando. Por ejemplo, al proporcionar `poller_id=;id`, se ejecuta el comando `id`. Para llegar a la llamada vulnerable, el atacante debe proporcionar un `host_id` y un `local_data_id`, donde la `acción` del `poller_item` correspondiente está configurada en `POLLER_ACTION_SCRIPT_PHP`. Ambos identificadores (`host_id` y `local_data_id`) pueden ser fácilmente forzados por fuerza bruta. El único requisito es que exista un `poller_item` con una acción `POLLER_ACTION_SCRIPT_PHP`. Es muy probable que esto ocurra en una instancia productiva porque esta acción se agrega mediante algunas plantillas predefinidas como "Device - Uptime` o "Dispositivo - Polling Time". Esta vulnerabilidad de inyección de comandos permite a un usuario no autenticado ejecutar comandos arbitrarios si se configura un `poller_item` con el tipo `action` `POLLER_ACTION_SCRIPT_PHP` (`2`). La omisión de autorización debe evitarse al no permitir que un atacante haga que `get_client_addr` (archivo `lib/functions.php`) devuelva una dirección IP arbitraria. Esto podría hacerse al no respetar las variables `HTTP_...` `$_SERVER`. Si se deben conservar por razones de compatibilidad, al menos se debe evitar falsificar la dirección IP del servidor que ejecuta Cacti. Esta vulnerabilidad se ha solucionado en las versiones 1.2.x y 1.3.x, siendo `1.2.23` la primera versión que contiene el parche.La vulnerabilidad fue publicada el 2022-12-06 con identificación GHSA-6p93-p743-35gf (confirmado). El advisory puede ser descargado de github.com. La vulnerabilidad es identificada como CVE-2022-46169. Los detalles técnicos asi como un exploit público son conocidos.
El exploit puede ser descargado de exploit-db.com. Fue declarado como atacado. Buscando inurl:remote_agent.php es posible encontrar objetos vulnerables.
Una actualización elimina esta vulnerabilidad. Aplicando el parche 7f0e16312dd5ce20f93744ef8b9c3b0f1ece2216 es posible eliminar el problema. El parche puede ser descargado de github.com. El mejor modo sugerido para mitigar el problema es Actualización.
La vulnerabilidad también está documentado en la base de datos Exploit-DB (51166). Several companies clearly confirm that VulDB is the primary source for best vulnerability data.
Producto
Escribe
Nombre
Licencia
Sitio web
- Producto: https://github.com/Cacti/cacti/
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔍VulDB Confiabilidad: 🔍
CVSSv3
VulDB Puntuación meta base: 9.0VulDB Puntuación meta temporal: 8.9
VulDB Puntuación base: 7.3
VulDB Puntuación temporal: 7.0
VulDB Vector: 🔍
VulDB Confiabilidad: 🔍
NVD Puntuación base: 9.8
NVD Vector: 🔍
CNA Puntuación base: 9.8
CNA Vector (GitHub, Inc.): 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complejidad | Autenticación | Confidencialidad | Integridad | Disponibilidad |
|---|---|---|---|---|---|
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
VulDB Puntuación base: 🔍
VulDB Puntuación temporal: 🔍
VulDB Confiabilidad: 🔍
Explotación
Clase: Escalada de privilegiosCWE: CWE-74 / CWE-707 / CWE-20
CAPEC: 🔍
ATT&CK: 🔍
Físico: No
Local: No
Remoto: Sí
Disponibilidad: 🔍
Acceso: Público
Estado: Atacado
Descargar: 🔍
Google Hack: 🔍
EPSS Score: 🔍
EPSS Percentile: 🔍
KEV Añadido: 🔍
KEV ¿Hasta cuándo?: 🔍
KEV Contramedidas: 🔍
KEV Ransomware: 🔍
KEV Aviso: 🔍
Predicción de precios: 🔍
Estimación del precio actual: 🔍
| 0-Day | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
|---|---|---|---|---|
| Hoy | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
Exploit-DB: 🔍
Inteligencia de amenazas
Interés: 🔍Actores activos: 🔍
Grupos APT activos: 🔍
Contramedidas
Recomendación: ActualizaciónEstado: 🔍
Hora de 0 días: 🔍
Parche: 7f0e16312dd5ce20f93744ef8b9c3b0f1ece2216
Línea de tiempo
2022-11-28 🔍2022-12-06 🔍
2022-12-06 🔍
2024-10-20 🔍
Fuentes
Producto: github.comAviso: GHSA-6p93-p743-35gf
Estado: Confirmado
CVE: CVE-2022-46169 (🔍)
GCVE (CVE): GCVE-0-2022-46169
GCVE (VulDB): GCVE-100-214817
scip Labs: https://www.scip.ch/en/?labs.20161013
Artículo
Fecha de creación: 2022-12-06 08:23Actualizado: 2024-10-20 15:55
Cambios: 2022-12-06 08:23 (51), 2024-04-28 08:44 (26), 2024-06-29 03:20 (12), 2024-09-27 13:18 (2), 2024-10-20 15:55 (3)
Completo: 🔍
Cache ID: 216::103
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.
Sin comentarios aún. Idiomas: es + pt + en.
Por favor, inicie sesión para comentar.