🇰🇷 한글 설명
Budibase 3.30.6 및 이전 버전의 REST 데이터 소스 쿼리 미리보기 엔드포인트에서 입력값 검증 미흡으로 인한 SSRF 취약점이 발견되었습니다. 인증된 관리자가 임의의 URL을 입력하여 클라우드 메타데이터 엔드포인트나 내부 네트워크 서비스에 접근할 수 있으며, 특히 GCP 환경에서는 OAuth2 토큰 탈취를 통해 전체 클라우드 권한을 획득할 수 있습니다.
💡 쉬운 설명
관리자 권한을 가진 공격자가 Budibase를 이용해 외부로 차단된 회사 내부 서버나 클라우드 관리 정보에 몰래 접속할 수 있는 보안 약점입니다. 이를 통해 내부 데이터베이스를 조회하거나 클라우드 전체 제어권을 뺏길 위험이 있습니다.
🇺🇸 원문 (English)
Budibase is a low code platform for creating internal tools, workflows, and admin panels. In versions from 3.30.6 and prior, the REST datasource query preview endpoint (POST /api/queries/preview) makes server-side HTTP requests to any URL supplied by the user in fields.path with no validation. An authenticated admin can reach internal services that are not exposed to the internet — including cloud metadata endpoints (AWS/GCP/Azure), internal databases, Kubernetes APIs, and other pods on the internal network. On GCP this leads to OAuth2 token theft with cloud-platform scope (full GCP access). On any deployment it enables full internal network enumeration. At time of publication, there are no publicly available patches.
📍 영향받는 시스템
Budibase 3.30.6 및 그 이전 모든 버전
⚔️ 공격 벡터
인증된 관리자가 POST /api/queries/preview 엔드포인트의 fields.path 필드에 내부 네트워크 주소를 입력하여 공격
🛡️ 대응 방법
공식 보안 패치가 출시될 때까지 해당 엔드포인트에 대한 접근을 제한하거나, 입력값에 대한 화이트리스트 기반 URL 검증 로직을 구현해야 합니다.
🔧 검증 코드
명령어 실행 결과로 클라우드 메타데이터 정보가 포함된 응답이 반환되면 해당 취약점에 노출된 상태입니다.
curl -s -X POST http://<target-ip>/api/queries/preview -H 'Content-Type: application/json' -d '{"fields": {"path": "http://169.254.169.254/computeMetadata/v1/"}}' | grep -E 'metadata|instance'