
CVE-2026-2472 (GCP-2026-011)에 대한 기술적 PoC: google-cloud-aiplatform _genai/_evals_visualization (Vertex AI Python SDK)에서 Jupyter/Colab에 영향을 미치는 인증되지 않은 저장형 XSS
google-cloud-aiplatform)의 _genai/_evals_visualization.py에 있는 인증되지 않은 저장형 크로스 사이트 스크립팅 (XSS) - 버전 1.98.0 이상 1.131.0 미만 (github.com/googleapis/python-aiplatform)google-cloud-aiplatform 소개google-cloud-aiplatform은 Vertex AI와 작업하기 위한 Google Cloud의 공식 Python SDK입니다. ML 모델(AutoML 및 사용자 정의 모델 포함)을 생성, 학습, 배포 및 사용하고 데이터셋, 엔드포인트, 파이프라인 및 예측을 관리하기 위한 고수준 추상화를 제공합니다.
GCP-2026-011 (2026-02-20에 게시 및 업데이트됨)은 Google Cloud Vertex AI Python SDK (google-cloud-aiplatform)의 _genai/_evals_visualization.py 컴포넌트에서 CVE-2026-2472 저장형 XSS 취약점을 문서화합니다. 이는 버전 1.98.0 이상 1.131.0 미만에 영향을 미치며, 인증되지 않은 공격자가 모델 평가 결과나 데이터셋 JSON에 스크립트 이스케이프 시퀀스를 주입하여 피해자의 Jupyter/Colab 환경에서 임의의 JavaScript를 실행할 수 있습니다. Google은 버전 1.131.0 이상으로 업그레이드하여 문제가 해결됨을 표시합니다 (1.131.0은 2025-12-16에 출시됨).
vertexai/_genai/_evals_visualization.py의 XSS 취약점에 대해이 파일은 공격자가 제어할 수 있는 JSON을 인라인 <script> 블록에 직접 포함하고 HTML 스크립트 컨텍스트 이스케이프를 수행하지 않기 때문에 저장형 XSS에 취약합니다. 이로 인해 스크립트 종료 시퀀스(예: </script>)를 포함하는 악성 값이 의도한 JavaScript 데이터 할당을 벗어나 렌더링된 Jupyter/Colab HTML에 실행 가능한 JavaScript를 주입할 수 있습니다.
핵심 문제는 다음 패턴입니다:
_get_evaluation_html(...)가 원시 JSON을 다음에 주입합니다:
const data = {eval_result_json}; (101행)_get_comparison_html(...)가 원시 JSON을 다음에 주입합니다:
const data = {eval_result_json}; (180행)_get_inference_html(...)가 원시 JSON을 다음에 주입합니다:
const data = JSON.parse({dataframe_json}); (252행)입력이 json.dumps(...)로 직렬화되더라도, 이는 유효한 JSON이 되도록 할 뿐입니다. HTML <script> 컨텍스트 내에 포함시키기에 안전하게 만들지는 않습니다. JSON의 필드에 </script>가 포함되어 있으면 브라우저의 HTML 파서가 현재 스크립트 태그를 종료하고 나머지를 공격자가 제어하는 HTML/JS로 파싱할 수 있습니다.
{
"prompt": "</script><script>alert('XSS');</script>",
"rows": []
}
CVE-2026-2472의 로컬 PoCgoogle-cloud-aiplatform 및 pandas 설치pip install google-cloud-aiplatform==1.98.0
pip install pandas
CVE-2026-2472.py를 실행하여 로컬 PoC 생성(.venv) L:\>python CVE-2026-2472.py
[+] xss_proof_local.html
