Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-30691 — CVE-2026-30691: Cross-Site Scripting (XSS) almacenado en @cyntler/react-doc-viewer | Kitploit
Herramientas/GitHubGitHub/walidriouah/cve-2026-30691
Análisis de VulnerabilidadesExplotación de Aplicaciones WebSeguridad WebPapers e InvestigaciónAprendizaje y Educación
GitHubwalidriouah/cve-2026-30691

CVE-2026-30691

CVE-2026-30691: Cross-Site Scripting (XSS) almacenado en @cyntler/react-doc-viewer

Ver Repositorio
2hace 3 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-30691 - Aviso de Vulnerabilidad

Detalles oficiales del registro de vulnerabilidades de MITRE y documentación técnica para CVE-2026-30691.


root@kitploit:~

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

[Suggested description] 
La vulnerabilidad de Cross-Site Scripting (XSS) en @cyntler/react-doc-viewer v1.17.1 permite a atacantes remotos ejecutar JavaScript arbitrario a través de un archivo .txt manipulado. El componente TXTRenderer no sanitiza el contenido del archivo y convierte explícitamente los datos brutos en un ReactNode.

[Additional Information] 
"El TXTRenderer se utiliza por defecto para cualquier archivo de texto. Dado que la librería se usa ampliamente en aplicaciones React para previsualizar contenido subido por el usuario, esta vulnerabilidad supone un riesgo significativo para las aplicaciones que no validan estrictamente el contenido de los archivos antes de pasarlos al visor."

[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] 
"Un atacante debe proporcionar un archivo .txt especialmente manipulado que contenga código HTML o JavaScript malicioso. Cuando la víctima abre este archivo usando el componente DocViewer, el script se ejecuta en su navegador."

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

Utilice CVE-2026-30691.

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

🛠️ Contexto Técnico Detallado

📝 Descripción

Se identificó una vulnerabilidad de Cross-Site Scripting (XSS) almacenado en el paquete @cyntler/react-doc-viewer (v1.17.1). La vulnerabilidad existe en el componente TXTRenderer, que renderiza el contenido bruto de archivos .txt al convertirlo explícitamente en un ReactNode sin sanitización previa ni escape de entidades.


💻 Código Vulnerable

En src/renderers/txt/index.tsx:

root@kitploit:~

{currentDocument?.fileData as ReactNode}

🔬 Prueba de Concepto (PoC)

Para reproducir la vulnerabilidad, cree un archivo llamado exploit.txt con la siguiente carga útil de script explícita y cárguelo en el componente visor de documentos:

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')">

🎯 Impacto

Un atacante puede ejecutar JavaScript arbitrario en el contexto del navegador de la víctima. Esto puede conllevar:

  • Secuestro de Sesión: mediante el robo de datos de Cookie/LocalStorage en el lado del cliente.
  • Acciones No Autorizadas: realizadas en nombre de la sesión de usuario autenticada.
  • Desfiguración de la Aplicación: y ataques de phishing posteriores dirigidos a los usuarios de la plataforma.

🛡️ Corrección Recomendada

Sanitice la entrada de texto dinámico con una librería de sanitización de HTML como DOMPurify antes de renderizar, o evite la conversión insegura de cadenas de entrada brutas a objetos ReactNode:

root@kitploit:~

import DOMPurify from 'dompurify';

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

Aviso curado por Walid Riouah (Investigador de Ciberseguridad y Red Teamer)

Descargar herramienta