무슨 일이 있었나
Budibase의 AI 테이블 생성 기능의 서버 측 요청 위조: uploadUrl 헬퍼는 필터링되지 않은 node-fetch로 사용자 제공 첨부 URL을 가져오므로, 인증된 빌더 사용자가 AI 테이블 프롬프트를 내부 주소의 fetch로 전환하고 사전 서명된 URL 누출을 통해 응답을 다시 읽을 수 있습니다.
왜 중요한가
Budibase의 AI 기능이 트리거 표면이지만, 실제 폭발 반경은 Budibase 호스트입니다: AI 생성 테이블은 내부 네트워크 및 클라우드 IAM 메타데이터로 가는 권한 있는 사용자 제어 경로입니다. AI 배포의 경우 AI 기능 엔드포인트가 SSRF 프리미티브가 되는 구체적인 예입니다.
공격 경로
인증된 빌더 사용자가 POST /api/ai/tables에 첨부 열에 내부 URL을 배치하는 프롬프트를 보냅니다; packages/server/src/utilities/fileUtils.ts의 uploadUrl 함수는 블랙리스트된 fetchWithBlacklist 변형 대신 raw node-fetch를 사용하므로, 서버는 내부 URL(예: 클라우드 메타데이터 169.254.x.x)을 가져와 응답을 사전 서명된 객체 저장소 URL 내부에서 호출자에게 반환합니다 (CVSS 7.7, 자격 증명 공개가 있는 SSRF).
영향받는 시스템
Budibase 3.41.0까지
완화 방안
GitHub 권고 GHSA-3c52-v5v2-3r56에 따라 패치하세요 (3.41.x용 수정 릴리스) — AI 테이블 업로드를 URL 블랙리스트 fetch 경로로 라우팅; 빌더 사용자 신뢰 제한