
PoC técnico para CVE-2026-2472 (GCP-2026-011): Cross-Site Scripting (XSS) no autenticado y almacenado en google-cloud-aiplatform _genai/_evals_visualization (Vertex AI Python SDK) que afecta a Jupyter/Colab.
google-cloud-aiplatformgoogle-cloud-aiplatform es el SDK oficial de Python de Google Cloud para trabajar con Vertex AI. Proporciona abstracciones de alto nivel para crear, entrenar, desplegar y utilizar modelos de ML (incluidos AutoML y modelos personalizados), y para gestionar conjuntos de datos, endpoints, pipelines y predicciones.
GCP-2026-011 (publicado y actualizado el 2026-02-20) documenta CVE-2026-2472, una vulnerabilidad de XSS almacenado en el componente _genai/_evals_visualization.py del SDK de Python de Google Cloud Vertex AI (google-cloud-aiplatform) que afecta a las versiones 1.98.0 hasta (sin incluir) 1.131.0, donde un atacante no autenticado puede inyectar secuencias de escape de script en los resultados de evaluación de modelos o en el JSON de datasets y lograr la ejecución arbitraria de JavaScript en el entorno Jupyter/Colab de la víctima; Google indica que el problema se soluciona actualizando a la versión 1.131.0 o posterior (con 1.131.0 publicada el 2025-12-16).
vertexai/_genai/_evals_visualization.pyEl archivo es vulnerable a XSS almacenado porque incrusta JSON controlable por el atacante directamente en un bloque <script> en línea sin realizar escape del contexto de script HTML. Esto permite que un valor malicioso que contenga una secuencia de cierre de script (por ejemplo, </script>) escape de la asignación de datos JavaScript prevista e inyecte JavaScript ejecutable en el HTML renderizado de Jupyter/Colab.
El núcleo del problema es el patrón:
_get_evaluation_html(...) inyecta JSON crudo en:
const data = {eval_result_json}; (línea 101)_get_comparison_html(...) inyecta JSON crudo en:
const data = {eval_result_json}; (línea 180)_get_inference_html(...) inyecta JSON crudo en:
const data = JSON.parse({dataframe_json}); (línea 252)Incluso cuando la entrada se serializa con json.dumps(...), eso solo la convierte en JSON válido; no la hace segura para incrustarla dentro de un contexto <script> HTML. Si cualquier campo del JSON contiene </script>, el analizador HTML del navegador puede terminar la etiqueta de script actual y analizar el resto como HTML/JS controlado por el atacante.
{
"prompt": "</script><script>alert('XSS');</script>",
"rows": []
}
CVE-2026-2472google-cloud-aiplatform y pandaspip install google-cloud-aiplatform==1.98.0
pip install pandas
CVE-2026-2472.py para generar el PoC local(.venv) L:\>python CVE-2026-2472.py
[+] xss_proof_local.html
