
Заметки о proof-of-concept и проверке патча для CVE-2026-96877 — отражённой XSS в хлебных крошках полнотекстового поиска Cargo Drilldown, со скриптом обнаружения на Python.
Автор отчёта: Marco Paciaroni (BomboBombone).
Cargo отображал поисковый запрос полнотекстового поиска в хлебных крошках Drilldown без HTML-экранирования. Таким образом, поисковый ввод мог стать исполняемой разметкой на странице результатов.
В записи CVE уязвимыми указаны версии Cargo вплоть до 3.9.4.
Проблема зависела от включённой индексации страниц для полнотекстового поиска и публично доступной для запросов таблицы, результаты которой попадали на уязвимое отображение. Анонимный злоумышленник мог подготовить запрос, который выполнял скрипт при открытии его жертвой.
В исходном отчёте зафиксировано выполнение в локальном браузере из хлебных крошек, а также обычный контрольный случай, который отображался без исполняемого элемента.
Изменение в upstream экранирует отображаемый поисковый запрос полнотекстового поиска перед добавлением его в хлебные крошки.
python poc.py https://wiki.example TABLE SEARCH_TERM
Таблица должна использовать индексацию страниц Cargo для полнотекстового поиска, а переданный термин должен совпадать с текстом страницы. Скрипт сообщает, содержит ли хлебная крошка неэкранированный безвредный маркер.