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-13934 — Repositorio estructurado de investigación de vulnerabilidades para una falla CWE-20 en Chrome Dawn WebGPU: causa raíz, diff del parche, verificación estática, revisión de gravedad y lecciones de seguridad. | Kitploit
Herramientas/GitHubGitHub/artwiderobo/cve-2026-13934
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónSeguridad WebPapers e InvestigaciónAprendizaje y Educación
GitHubartwiderobo/cve-2026-13934

cve-2026-13934

Repositorio estructurado de investigación de vulnerabilidades para una falla CWE-20 en Chrome Dawn WebGPU: causa raíz, diff del parche, verificación estática, revisión de gravedad y lecciones de seguridad.

Ver Repositorio
hace 14 díasAú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-13934

Este es el repositorio del proyecto de trabajo. Investigación, análisis, trabajo e informes se manejan en un único repositorio (D088/D091).

Este archivo es el documento de entrada del repo/tablero. La convención completa de carpetas y entregables está en docs/conventions.md. El cuerpo (estado, conclusiones, enlaces) se actualiza cuando el elemento informe (report) se promociona. Los agentes de investigación, análisis y trabajo no modifican el README raíz.

Resumen en una línea: Dawn, la implementación de WebGPU de Google Chrome, no validaba las restricciones de parámetros que exige la especificación Vulkan al crear samplers YCbCr, por lo que un atacante que ya hubiera comprometido el proceso del renderizador podía hacer llegar valores que violan la especificación hasta el proceso de GPU (CWE-20). La corrección se implementó en dos capas —validación añadida y forzado en el backend— y se incorporó en Chrome 150.0.7871.47.

Los documentos de aprendizaje detallados están en docs/cve-2026-13934/ — escritos para poder seguir la causa, la corrección, la demostración y las lecciones sin reproducción.

Estado

Objetivo: CVE-2026-13934 — Google Chrome / Dawn (implementación de WebGPU), tipo de vulnerabilidad CWE-20 (Improper Input Validation). CVE publicado el 2026-06-30, versión corregida 150.0.7871.47. Fuente: research/20260804-cve-2026-13934-6bacf7/sources.md §1·§2.

Etapas de progreso — se trabajó en cuatro líneas: investigación (información pública) · investigación (parche/diff) · análisis (reproducción/demostración) · informe (síntesis de aprendizaje); las cuatro líneas se completaron.

Lo confirmado

  • Identificador CVE y estado (público), CNA (Chrome/Google), producto afectado (Google Chrome), componente afectado (Dawn).
  • Versión corregida 150.0.7871.47 y commit de corrección (Dawn 43055cbe…), 3 archivos modificados y el motivo del cambio.
  • En la revisión vulnerable no hay ninguna comprobación de restricciones de la especificación, ni forzado ni prueba de regresión; en la corregida están todas — verificado mediante contraste estático de las dos instantáneas de Dawn que Chrome fijó realmente (cases/20260804-cve-2026-13934-4d10a8/report.md §3).

Aún no confirmado (no se ha rellenado con suposiciones)

  • Sin observación a nivel de ejecución — no se compilaron las dos revisiones ni se ejecutaron pruebas unitarias. La salida real del mensaje de error de validación, los parámetros del VkSampler generado y el informe de VUID de la capa de validación de Vulkan son valores esperados basados en el código (cases/…-4d10a8/report.md §4).
  • Plataforma afectada — la descripción del CVE dice "on Android", pero el aviso del proveedor en el que aparece este CVE es el del canal de escritorio. No se confirmó si la misma ruta también se cumple en escritorio.
  • Límite de versiones afectadas — las etiquetas de Chromium 150.0.7871.46·.47·.63 fijan todas la misma revisión de Dawn, pero el CVE lo indica como "prior to .47". No se pudo confirmar la base de esta notación.
  • Completitud de la corrección — solo hubo 1 commit en Dawn que hiciera referencia a ese bug, pero no se investigó de forma exhaustiva si hubo cambios acompañantes en el lado de Chromium src.
  • Análisis interno del proveedor — el issue de Chromium 513006636, que contiene la causa, está con acceso restringido.

Severidad — varía según la fuente. La calificación del propio proveedor (Chromium) es Medium, el CVSS v3.1 de CISA-ADP es 9.6 CRITICAL (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H) y NVD no tiene evaluación propia. Sin dictaminar cuál es la correcta, se presentan ambas — la interpretación está en docs/cve-2026-13934/overview.md.

Este repositorio no contiene servicios desplegados (API, backend, bases de datos, etc.). Todos los entregables son documentos.

Conclusiones principales

1. Causa — no se comprobó la premisa que exige la especificación

La especificación Vulkan exige que, para los samplers con conversión YCbCr, el modo de dirección de todos los ejes sea CLAMP_TO_EDGE y que el filtrado anisotrópico (anisotropy) esté desactivado (VUID-VkSamplerCreateInfo-addressModeU-01646). Antes del parche, Dawn no comprobaba esta restricción, por lo que los parámetros que violan la especificación podían pasar la validación y llegar hasta la creación del VkSampler.

Lo decisivo es el modelo de amenaza. La descripción pública presupone que el atacante ya ha comprometido el proceso del renderizador ("a remote attacker who had compromised the renderer process"). Desde esa posición se pueden manipular directamente los comandos entre procesos, no la ruta normal de la API web, por lo que la validación del lado del renderizador queda fuera del límite de confianza. Y el backend de Vulkan de Dawn se ejecuta en el proceso de GPU, con mayores privilegios que el renderizador — por eso este defecto se convierte en una superficie de escape del sandbox.

Fuente: cases/20260804-cve-2026-13934-4d10a8/root_cause.md §2 · Detalle: docs/cve-2026-13934/root-cause-and-fix.md

2. Corrección — no se limitó a una sola capa de validación

El commit de corrección es Dawn 43055cbeadddca41a9c973a809f859d641077b2f ("Add YCbCr sampler validation", 2026-05-27, Bug: 513006636) y modifica tres archivos.

Esta estructura es el núcleo de este CVE. Como se presupone que el renderizador ya está comprometido, la validación por sí sola no basta; la segunda capa, que fuerza los valores en el lado de mayores privilegios, es la línea de bloqueo efectiva. Resumirlo como "faltaba validación de entrada y se añadió validación" pierde el punto esencial del diseño defensivo.

El tamaño del cambio es 53 líneas añadidas, 0 eliminadas — un parche que rellena las comprobaciones que faltaban sin modificar la lógica existente.

Fuente: research/20260804-cve-2026-13934-diff-92f928/report.md §3·§4 · Detalle: cases/20260804-cve-2026-13934-4d10a8/patch_diff.md §4

3. Demostración — se confirmó hasta el nivel estático

Se contrastaron las fuentes de las dos instantáneas de Dawn que Chrome fijó realmente.

Lo que esto revela: el lado vulnerable ya tenía la rama YCbCr y 2 comprobaciones. El defecto no era la ausencia de la ruta, sino la omisión de la comprobación de la restricción condicional dentro de la rama.

Como no se compiló ni se ejecutó, los dos elementos siguientes son expectativas basadas en el código y no mediciones.

Fuente: cases/20260804-cve-2026-13934-4d10a8/report.md §1~§4 · Detalle: docs/cve-2026-13934/evidence.md

4. Lecciones

Desde la perspectiva del diseño de seguridad

  • Los valores que cruzan un límite de confianza deben volver a tratarse en el lado que los recibe. La validación del lado del cliente/renderizador es para conveniencia y diagnóstico; dentro del límite de privilegios hay que validar o forzar los valores.
  • Una "premisa que exige la especificación" no se cumple si no se fuerza en el código. Las restricciones condicionales deben tratarse en la rama donde se cumple la condición; en este caso, la rama existía y solo faltaba la comprobación.
  • Rechazar (reject) y corregir (clamp) tienen funciones distintas. Este parche rechaza en la ruta normal y aplica la corrección a los valores que provienen de fuera del límite de confianza.
  • No se juzga mirando solo una severidad. Para la misma vulnerabilidad coexisten la calificación Medium del proveedor y el CVSS 9.6 CRITICAL. Solo leyendo junto la premisa (compromiso previo del renderizador) se ve el riesgo real.
  • No se invierte la dirección de la señal de detección. El mensaje de error de validación solo se produce después del parche. El razonamiento "no hay ese error en los logs, luego es seguro" está al revés.

Desde la perspectiva del método de investigación

  • Se puede rastrear incluso si el enlace de referencia del CVE no tiene el parche. El commit de corrección se encontró mediante: número de bug del aviso del proveedor → etiquetas de comparación de releases → revisión del componente en DEPS → búsqueda del número de bug en el log de commits del componente. Procedimiento: research/20260804-cve-2026-13934-diff-92f928/sources.md §6.
  • La prueba de regresión es la mejor especificación de observación. Como la prueba que acompaña al parche define "qué entrada produce qué resultado", se puede verificar la diferencia antes/después sin una reproducción arriesgada.
  • No se mezclan lo confirmado y lo estimado. Los entregables de este repositorio no dejan los elementos no confirmados en blanco; se registran como "no confirmado + motivo".

Detalle: docs/cve-2026-13934/lessons.md

Entregables

Documentos de aprendizaje (docs/)

Investigación — información pública y alcance de impacto (research/20260804-cve-2026-13934-6bacf7/)

Investigación — comparación de parche/diff (research/20260804-cve-2026-13934-diff-92f928/)

Análisis — reproducción y demostración (para aprendizaje) (cases/20260804-cve-2026-13934-4d10a8/)

Informes (reports/20260804-cve-2026-13934-8400bc/)

Fuentes primarias externas (resumen)

  • CVE Record: https://www.cve.org/CVERecord?id=CVE-2026-13934
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-13934
  • Aviso del proveedor: Chrome Releases "Stable Channel Update for Desktop" (2026-06-30)
  • Commit de corrección: https://dawn.googlesource.com/dawn/+/43055cbeadddca41a9c973a809f859d641077b2f

La lista completa, con las fechas de publicación y los identificadores, está en los sources.md de las dos líneas de investigación.

TipoRaíz
Investigaciónresearch/
Análisiscases/
Trabajowork/
Informes

Recopilación periódica: research/topics/<topic>/

Reglas (resumen)

  • Solo texto en los commits. Prohibidos binarios, dumps y capturas de pantalla. Cada archivo ≤ 1 MiB.
  • Rutas permitidas: research/ · cases/ · work/ · reports/ · docs/ · .laurelin/ · .github/
  • Las personas no hacen commits directamente: se indica desde el proyecto de trabajo Laurelin y Aule realiza el commit.
  • Convención detallada: docs/conventions.md
Descargar herramienta
LíneaEstadoObtenido
Investigación de información pública y alcance de impacto (research/…-6bacf7/)Completada (4 documentos)Metadatos de CVE·NVD·aviso del proveedor, CWE·CVSS, límites de versiones afectadas, dictamen según criterios
Comparación de parche/diff (research/…-diff-92f928/)Completada (4 documentos)Identificación del commit de corrección, criterios de comparación en 3 niveles, delta de archivos y lógica modificados, dictamen de evasión/riesgo residual
Reproducción y demostración (cases/…-4d10a8/)Completada (6 documentos) — contraste estático realizado, sin observación a nivel de ejecuciónEstructura de la causa, viabilidad y restricciones, valores observados del contraste estático de las dos revisiones
Informe de aprendizaje (reports/…-8400bc/)Completado (4 documentos)Índice y mapa de citas, borrador del README raíz, lista de documentos de docs/
CambioArchivoNaturaleza
Añade 4 comprobaciones de modo de dirección y maxAnisotropy al descriptor YCbCrsrc/dawn/native/Sampler.cppValidación de frontend — rechaza las solicitudes que violan la especificación
Sobrescribe el modo de dirección y la anisotropía con valores conformes a la especificación en las rutas con conversión YCbCrsrc/dawn/native/vulkan/SamplerVk.cppForzado de backend — sea cual sea la entrada, no se crea un estado de violación
Añade la prueba de regresión YCbCrSamplerRequiredParamssrc/dawn/tests/unittests/validation/YCbCrValidationTests.cppPrevención de recurrencia
Elemento observadoLado vulnerable 54b4153c…Lado corregido 01249a97…Nivel de confirmación
Número de DAWN_INVALID_IF en el bloque de validación YCbCr2 (feature gate + formato no definido)6Medido
Forzado de valores conformes a la especificación en el backend de VulkanNinguno (hasta el encadenamiento pNext)PresenteMedido
Prueba de regresión YCbCrSamplerRequiredParamsAusente (23 TEST_F)Presente (24)Medido
Error de device ante una solicitud que viola la especificaciónNo se produceSe produceEsperado (basado en el código)
DocumentoContenido
docs/cve-2026-13934/overview.mdResumen de visión general, antecedentes y conclusiones; interpretación de la severidad
docs/cve-2026-13934/root-cause-and-fix.mdEstructura de la causa en 3 niveles y las dos capas del parche
docs/cve-2026-13934/evidence.mdValores observados del contraste estático, rutas de observación y limitaciones
docs/cve-2026-13934/lessons.mdLecciones de diseño de seguridad y método de investigación
docs/cve-2026-13934/limits-and-sources.mdLimitaciones, elementos no confirmados y lista de fuentes
docs/conventions.mdConvención de carpetas y entregables (texto completo)
DocumentoContenido
brief.mdTexto original de la solicitud, criterios de decisión C1~C6, definición de fuentes oficiales
sources.mdMetadatos de CVE·NVD·aviso del proveedor, CWE·CVSS, conflictos entre fuentes
report.mdDictamen de impacto·CVSS·condiciones de vulnerabilidad, dictamen C1~C6, interpretación de la severidad
followups.jsonPropuestas de seguimiento
DocumentoContenido
brief.mdObjetivo, criterios de decisión D1~D6, árbol del parche de referencia
sources.mdPar de commit de corrección·criterios de comparación, DEPS·Gerrit, procedimiento de rastreo
report.mdDelta de archivos y lógica modificados·dictamen de evasión/riesgo residual, D1~D6
followups.jsonPropuestas de seguimiento
DocumentoContenido
intake.mdMetadatos de recepción, alcance de objetivo y versiones, condiciones de inicio, requisitos de aislamiento, criterios de decisión J1~J4
patch_diff.mdCambios y motivos de los cambios, indicadores de observación antes/después del parche
root_cause.mdEstructura de la causa raíz en 3 niveles, premisas P1~P7, límite de confianza
exploitability.mdDistinción de demostrable/no demostrable, rutas de observación, restricciones, límites de contención
report.mdSíntesis de la verificación de reproducción — valores observados del contraste estático, diferencias antes/después, dictamen J1~J4
followups.jsonPropuestas de seguimiento
DocumentoContenido
outline.mdAudiencia, índice, mapa de citas de fuentes (S1~S15)
README.mdBorrador original promocionado a este README raíz
docs-index.mdLista y resumen de documentos de docs/, notas para la promoción
followups.jsonPropuestas de seguimiento
reports/