
Отчёт и proof-of-concept для CVE-2026-96878 — хранимый XSS в псевдонимах поля Exhibit расширения Cargo для MediaWiki, с примечаниями по валидации и ссылками на исправление в upstream.
Автор отчёта: Marco Paciaroni (BomboBombone).
Рендерер Exhibit в Cargo вставлял псевдонимы полей в своё HTML-представление без кодирования для текстовых и атрибутных контекстов. Редактор страницы мог сохранить запрос, псевдонимы которого интерпретировались как разметка при просмотре страницы.
В записи CVE как затронутые указаны версии Cargo вплоть до 3.9.4.
Описанный сценарий требовал формата Exhibit, разрешения на редактирование страницы, отображаемой другим пользователям, и запроса с несколькими полями. Выполнение скрипта происходило в origin вики для посетителей этой страницы.
В исходном отчёте зафиксировано выполнение в браузере из представления Exhibit на локальном экземпляре MediaWiki. Обычный псевдоним не создавал элемента, несущего событие.
Изменение в upstream строит представление Exhibit с помощью HTML-хелперов, которые кодируют текст псевдонимов и значения атрибутов в соответствующих контекстах.
python poc.py TABLE FIELD_ONE FIELD_TWO
Скрипт выводит запрос Cargo Exhibit с безвредным DOM-маркером. Добавляйте его только на тестовую страницу, которую вы уполномочены редактировать, просмотрите отрендеренное представление Exhibit и после этого удалите его.
В публичном описании CVE эта проблема в настоящее время обозначена как отражённый XSS. В представленном отчёте описывается запрос, сохраняемый в редактируемом содержимом страницы и срабатывающий при последующем просмотре страницы. Этот отчёт описывает такой сохранённый сценарий, не изменяя запись CVE.