Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-44011-craftcms-auth-rce — El PoC de CVE-2026-44011: RCE en Craft CMS con un usuario autenticado. | Kitploit
Herramientas/GitHubGitHub/4xura/cve-2026-44011-craftcms-auth-rce
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPost-ExplotaciónSeguridad WebPruebas de PenetraciónComando y ControlHerramienta de Acceso Remoto
GitHub4xura/cve-2026-44011-craftcms-auth-rce

CVE-2026-44011-craftcms-auth-rce

El PoC de CVE-2026-44011: RCE en Craft CMS con un usuario autenticado.

Ver Repositorio
618hace 25 díasAú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-44011 PoC de RCE autenticado en Craft CMS

Solo para pruebas autorizadas.

El aviso de Craft CMS indica >=4.0.0, <4.17.12 y >=5.0.0, <5.9.18 como afectados, y acredita a precicom-vincent-tl como descubridor.

Ejecución

python -m pip install -r requirements.txt
python cve-2026-44011.py -b 'https://example.com' -u '<username' -p '<password>' -c '<command>'

Argumentos requeridos:

  • -b, --base-url: URL de Craft, incluyendo http:// o https://.
  • -u, --username: Nombre de usuario del panel de control.
  • -p, --password: Contraseña del panel de control.
  • -c, --command: Comando a ejecutar y del que capturar la salida.

Argumentos opcionales:

  • -P, --cp-path: Ruta del panel de control (por defecto: /admin).
  • -s, --site-id: ID del sitio (por defecto: 1).
  • -e, --element-type: Tipo de elemento (por defecto: craft\elements\Category).
  • -f, --csrf-field: Nombre del campo CSRF del inicio de sesión (por defecto: CRAFT_CSRF_TOKEN).
  • -t, --timeout: Tiempo de espera de solicitudes y callbacks en segundos (por defecto: 15).
  • -F, --force: Continuar cuando la versión de Craft no esté disponible o esté fuera de los rangos del aviso.
  • -H, --callback-host: Dirección que el objetivo puede alcanzar (por defecto se infiere la dirección local; sobrescríbela detrás de un pivote).
  • --listen-port: Puerto del listener (por defecto: un puerto libre seleccionado por el SO; establece un puerto fijo para el reenvío).

Análisis de la vulnerabilidad

1. Entrada de condición

En la acción de búsqueda vulnerable, condition pasa del cuerpo POST a la creación de objetos sin depuración.

$conditionConfig = $this->request->getBodyParam('condition');
$condition = Craft::$app->getConditions()->createCondition($conditionConfig);

2. Diseño de campos anidado

ElementCondition::setFieldLayouts() construye un diseño a partir de cada array proporcionado.

if (is_array($fieldLayout)) {
    $fieldLayout['type'] = $this->elementType;
    return $fieldsService->createLayout($fieldLayout);
}

3. Ejecución de callable

El payload del aviso adjunta el AttributeTypecastBehavior de Yii con una clave as y conecta un evento con on *. El comportamiento llega a Psy\Readline\Hoa\ConsoleProcessus::execute a través del typecast de callable de Yii.

condition.fieldLayouts[]
  -> FieldLayout behavior + event
  -> AttributeTypecastBehavior::typecastValue()
  -> call_user_func()
  -> ConsoleProcessus::execute()

El controlador corregido aplica Component::cleanseConfig() a la condición antes de la creación del objeto.

Notas

  • La documentación de CSRF de Craft requiere una sesión y un token válidos para las acciones POST. El script los transporta a través del inicio de sesión y la búsqueda.
  • ConsoleProcessus::execute() de Psy escapa los metacaracteres del shell por defecto. El PoC sirve un script temporal para ejecutar -c, recibe su salida en un listener HTTP integrado y apaga el listener después. Usa -H si el objetivo no puede alcanzar la dirección inferida.
  • La captura de salida requiere sh, curl y mktemp en el objetivo.
  • Pruebas: python -m unittest discover -s tests -v.
Descargar herramienta