Vercel AI SDK에서 파일 형식 화이트리스트를 우회할 수 있는 입력 검증 취약점(CVE-2025-48985)이 공개됐다. 지원 URL과 미지원 URL을 혼합해 전달할 때 배열 인덱스 정렬 오류로 미지원 파일의 바이트 데이터가 지원 슬롯에 잘못 매핑되는 방식으로 콘텐츠 검증을 우회한다. 패치 버전은 v5.0.52, v6.0.0-beta.*이다.
핵심 포인트- 영향 함수: generateText()와 streamText() — AI SDK의 주요 텍스트 생성 진입점 양쪽 모두 영향받음
- 공격 벡터: 지원 URL과 미지원 URL을 혼합 전달 시 필터링 후 인덱스 불일치로 미지원 파일 데이터가 지원 슬롯에 치환
- 취약 파일: convert-to-language-model-prompt.ts — 멀티모달 프롬프트를 언어 모델 형식으로 변환하는 핵심 파일
- 수정 원리: 필터링 전에 URL과 다운로드 데이터를 쌍으로 매핑해 인덱스 정렬 보장
- 패치 버전으로 즉시 업그레이드하거나 SDK 외부에서 파일 형식 검증 로직을 직접 구현해야 함
상세 정리- 취약점 배경: AI SDK가 멀티모달 입력에서 지원되지 않는 URL을 필터링하는 로직에 배열 인덱스 오류 존재
- 문제 원인: 지원 URL 필터링 시 null 항목 제거 후 남은 다운로드 데이터와 URL 키 매핑이 어긋남 — 인덱스 shift로 데이터 슬롯이 뒤섞임
- 공격 흐름: 공격자가 지원 URL(예: JPEG)과 미지원 URL을 배열로 혼합 전달 → 필터 후 미지원 URL의 실제 파일 바이트가 지원 JPEG 슬롯에 대입 → 콘텐츠 검증 우회
- 영향 범위: SDK 외부에서 별도 파일 형식 검증 로직이 없는 경우 이미지/파일 URL을 혼합 전달하는 모든 멀티모달 구현에 영향
- 수정 방법: 필터링 전에 (URL, 다운로드 데이터) 쌍을 먼저 zip으로 묶어 인덱스를 보존한 뒤 필터 적용 — 정렬 오류 원천 차단
- 패치 버전: v5.0.52 및 v6.0.0-beta.* — 해당 버전 미만은 전부 취약
- 임시 조치: 최신 버전 업그레이드가 어려우면 SDK 외부에서 파일 MIME 타입/확장자를 직접 검증하는 미들웨어 추가
왜 읽나Vercel AI SDK로 멀티모달(이미지/파일) 입력을 처리하는 모든 개발자가 즉시 패치 버전으로 업그레이드해야 하는 보안 취약점.