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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-30691 — CVE-2026-30691: Хранимая межсайтовая уязвимость (XSS) в @cyntler/react-doc-viewer | Kitploit
Инструменты/GitHubGitHub/walidriouah/cve-2026-30691
Анализ уязвимостейЭксплуатация веб-приложенийВеб-безопасностьСтатьи и ИсследованияОбучение и Образование
GitHubwalidriouah/cve-2026-30691

CVE-2026-30691

CVE-2026-30691: Хранимая межсайтовая уязвимость (XSS) в @cyntler/react-doc-viewer

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

Популярное

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

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

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

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

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

CVE-2026-30691 - Уведомление об уязвимости

Официальные данные записи MITRE об уязвимости и техническая документация для CVE-2026-30691.


root@kitploit:~

-----BEGIN PGP SIGNED MESSAGE----- 
Hash: SHA256

[Suggested description] 
Cross-Site Scripting (XSS) vulnerability in @cyntler/react-doc-viewer v1.17.1 allows remote attackers to execute arbitrary JavaScript via a crafted .txt file. The TXTRenderer component fails to sanitize file content and explicitly casts raw data as a ReactNode.

[Additional Information] 
"The TXTRenderer is used by default for any text-based files. Since the library is widely used in React applications to preview user-uploaded content, this vulnerability poses a significant risk for applications that do not strictly validate file contents before passing them to the viewer."

[Vulnerability Type] Cross Site Scripting (XSS)
[Vendor of Product] cyntler
[Affected Product Code Base] @cyntler/react-doc-viewer - 1.17.1
[Affected Component] src/renderers/txt/index.tsx
[Attack Type] Remote
[Impact Code execution] true
[Impact Information Disclosure] true

[Attack Vectors] 
"An attacker must provide a specially crafted .txt file containing malicious HTML or JavaScript code. When the victim opens this file using the DocViewer component, the script executes in their browser."

[Reference] https://github.com/cyntler/react-doc-viewer/issues/317
[Discoverer] Walid Riouah

Use CVE-2026-30691.

-----BEGIN PGP SIGNATURE-----
-----END PGP SIGNATURE-----

🛠️ Подробный технический контекст

📝 Описание

В пакете @cyntler/react-doc-viewer (v1.17.1) была обнаружена уязвимость, связанная с хранимым межсайтовым скриптингом (XSS). Уязвимость присутствует в компоненте TXTRenderer, который отображает необработанное содержимое файлов .txt, явно приводя его к типу ReactNode без предварительной очистки или экранирования сущностей.


💻 Уязвимый код

В src/renderers/txt/index.tsx:

root@kitploit:~

{currentDocument?.fileData as ReactNode}

🔬 Доказательство концепции (PoC)

Чтобы воспроизвести уязвимость, создайте файл с именем exploit.txt, содержащий следующую полезную нагрузку скрипта, и загрузите его в компонент просмотра документов:

root@kitploit:~

<h1 style="color: red;">Vulnerable!</h1>
<script>alert('XSS_SUCCESS'); document.body.style.background='red';</script>
<img src=x onerror="console.log('XSS_Executed_Successfully')">

🎯 Влияние

Злоумышленник может выполнить произвольный JavaScript в контексте браузера жертвы. Это может привести к:

  • Угону сеанса: благодаря краже данных Cookie/LocalStorage на стороне клиента.
  • Несанкционированным действиям: выполняемым от имени аутентифицированной пользовательской сессии.
  • Дефейсу приложения: и последующим фишинговым атакам, нацеленным на пользователей платформы.

🛡️ Рекомендуемое исправление

Очищайте динамический текстовый ввод перед отображением с помощью библиотеки очистки HTML, такой как DOMPurify, либо избегайте небезопасного приведения необработанных строковых входных данных к объектам ReactNode:

root@kitploit:~

import DOMPurify from 'dompurify';

const sanitizedHTML = DOMPurify.sanitize(currentDocument?.fileData);
return <div dangerouslySetInnerHTML={{ __html: sanitizedHTML }} />;

Консультацию подготовил Walid Riouah (исследователь кибербезопасности и Red Teamer)

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