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

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

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

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

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

Категории

Все категории
Loading categories
element-ics-javascript — Element Web v1.12.29 — высокий — удалённый — XSS — ссылка navigation.json в Univention ICS становится href меню javascript: | Kitploit
Инструменты/GitHubGitHub/abraxas/element-ics-javascript
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на Проникновение
GitHubabraxas/element-ics-javascript

element-ics-javascript

Element Web v1.12.29 — высокий — удалённый — XSS — ссылка navigation.json в Univention ICS становится href меню javascript:

Репозиторий
3 дней назадЕщё не проверено

Популярное

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

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

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

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

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

Abraxas Labs - element-ics-javascript

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  element-ics-javascript

element-ics-javascript

Element Web v1.12.29 - Element / New Vector

Класс: XSS Доступ: Удалённый

Модуль баннера Univention загружает ICS navigation.json, принимает link каждой записи как z.string() без проверки схемы, а Menu.tsx помещает эту строку в стилизованный <a href>. Статическая конфигурация меню использует z.url() для link_url. Путь ICS — нет. Предпросмотр URL на том же пине уже отклоняет javascript: (previewFromBundle, GHSA-9r5h). Это не стандартный app.element.io. Требуется modules/banner с menu.type univention, а также ICS, которому доверяет развёртывание.

Любой, кто может изменить этот navigation.json, внедряет javascript: или data:. Аутентифицированный пользователь, открывающий меню баннера и кликающий по элементу, выполняет скрипт в origin Element.

IDCVE пока нет
CWECWE-79 / CWE-20
CVSSСредний: 6.8 CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:N
ПродуктElement Web
Затронутоv1.12.29 тег v1.12.29 (2d90d6b7b601ecb9ccdf81239a43b4396b4b0c9e). Условие: баннер Univention + ICS.
АутентификацияОператор ICS / компрометация ICS. Жертва — аутентифицированный пользователь, кликающий по элементу меню.
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1

Что может сделать атакующий

Скомпрометировать или использовать ICS, которому доверяет развёртывание Element. Поместить URL javascript: (или data:) в navigation.json. Дождаться, пока аутентифицированный пользователь откроет меню баннера и кликнет по элементу. Это захват учётной записи Matrix: токен доступа, криптохранилище, сессия. Это не OS RCE. В Desktop по-прежнему nodeIntegration отключён и есть песочница.

ПривилегияМетод / sinkРазведка / целостность / доступностьДоказано в лаборатории или выведено
Отрисовка <a href="javascript:…"> меню баннера в origin ElementICS navigation.json entries[].link -> navigationToConfig link_url -> Menu.tsx LinkButton href={link.link_url}Целостность DOM менюДоказано в лаборатории. Ссылка mock ICS javascript:ELEMENT-ICS-JAVASCRIPT-WITNESS стала этим href. Ссылка https-портала по-прежнему отрисована
Выполнение скрипта в origin Element после кликаЖертва кликает по элементу меню (UI:R)ЦелостностьВыведено из sink href. Лаборатория не выполняла клик в браузере и не похищала живой токен Matrix
Чтение токена доступа Matrix / криптохранилища (захват учётной записи)Скрипт в origin против localStorage / IndexedDB сессииРазведка / целостностьВыведено из XSS в origin Element. Свидетель лаборатории — строка href
Верхняя навигация вкладки Element на фишинговую страницуSilentLogin.tsx iframe без песочницы src={new URL("silent", icsUrl)}ЦелостностьДоказано в лаборатории, что iframe не имеет sandbox. Верхняя навигация не проверялась
То же внедрение через data:z.string() принимает любую схемуЦелостностьВыведено. Лаборатория внедряла только javascript:

Закрыто на этом пине: стандартный app.element.io (нет баннера Univention). OS RCE / LPE (Desktop nodeIntegration: false, песочница, contextIsolation). XSS в HTML Timeline. javascript: в предпросмотре URL (GHSA-9r5h previewFromBundle требует http:/https:). XSS в HTML-экспорте (GHSA-wqmv). Токен медиа виджета (GHSA-3jm3). Статический баннер link_url: z.url() — это конфигурация оператора, а не ICS; z.url() также не является allowlist http/https.

Остатки того же пина: fragment guest wipe, vector: Windows drive-letter.

Как я это нашёл

Я зафиксировал Element Web v1.12.29 после релиза на GitHub 22 сентября 2026. Предпросмотр URL уже усвоил http:/https: на собственном опыте. Univention ICS link по-прежнему z.string(). Статическая конфигурация меню использует z.url(). Путь загрузки никогда не проходит эту проверку.

Уже зафиксированные ошибочные пути: считать жертвой стандартный app.element.io (Univention ограничен условием); считать z.url() allowlist схем (конструктор URL принимает javascript:); раздувать XSS по клику до OS RCE. Обратная оболочка. Театр.

Лаборатория

Гаджет функций пина плюс mock ICS navigation.json. Не живой контейнер Element Web. how=gadget. Применение allowlist http/https предпросмотра URL (previewFromBundle) убрало javascript href и сохранило https-ссылку портала.

python3 element-ics-javascript-Abraxas-Labs.py

или

cd lab
./run.sh

Цель только http://127.0.0.1:19620. Compose-проект element-ics-javascript. Стек разбирается после запуска.

SUCCESS element-ics-javascript how=gadget href-scheme=javascript menu-a-javascript=yes allowlist-rejects=yes silent-no-sandbox=yes ELEMENT-ICS-JAVASCRIPT-WITNESS

Исправление

Добавить http: и https: в allowlist для ICS link так же, как это делает previewFromBundle. Отклонять javascript:, data: и другие схемы до href=. Поместить silent iframe в песочницу (sandbox="" или как минимум без allow-top-navigation). Не считать z.url() allowlist схем.

Ссылки

  • github.com/element-hq/element-web тег v1.12.29
  • navigation.ts
  • Menu.tsx
  • SilentLogin.tsx
  • Рядом исправлено (не этот href): GHSA-9r5h previewFromBundle
  • Тот же пин: element-fragment-guest · element-vector-drive-letter
  • CWE-79

Лицензия

GNU Affero GPL v3.0. См. LICENSE. Только loopback-лаборатория. Без гарантий.

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