Budibase는 오픈 소스 로우 코드 플랫폼입니다. 3.39.12 이전에는 게시된 Budibase 앱의 인증되지 않은 방문자가 지원 MongoDB, CouchDB, Elasticsearch, DynamoDB-PartiQL 또는 REST-with-JSON-body 컬렉션의 모든 문서를 읽고 빌더가 PUBLIC 쓰기 쿼리를 게시한 경우 하나의 HTTP 요청으로 해당 컬렉션의 모든 문서를 수정합니다. packages/server/src/sdk/workspace/queries/queries.ts:121-138의 richContext는 매개변수 값을 원시 JSON 본문으로 대체합니다.
Budibase는 오픈 소스 로우 코드 플랫폼입니다. 3.39.12 이전에는 게시된 Budibase 앱의 인증되지 않은 방문자가 지원 MongoDB, CouchDB, Elasticsearch, DynamoDB-PartiQL 또는 REST-with-JSON-body 컬렉션의 모든 문서를 읽고 빌더가 PUBLIC 쓰기 쿼리를 게시한 경우 하나의 HTTP 요청으로 해당 컬렉션의 모든 문서를 수정합니다. packages/server/src/sdk/workspace/queries/queries.ts:121-138의 richContext는 매개변수 값을 쿼리의 원시 JSON 본문으로 대체한 다음 결과를 JSON.parses합니다. packages/server/src/api/controllers/query/index.ts:61-71의 유효성 검사기 verifyQueryInputs는 사용자 입력에서 핸들바 마커({{, }})만 거부하고 JSON 메타 문자(", , })를 이스케이프하지 않습니다. 닫는 따옴표와 추가 키가 포함된 매개 변수 값은 공격자가 제어하는 필드를 구문 분석된 필터 객체로 리프트합니다. Mongo 찾기의 경우 구문 분석된 필터는 collection.find()로 직접 전달됩니다. (packages/server/src/integrations/mongodb.ts:506-510) 중복 키 JSON 구문 분석은 빌더의 {name: "..."}을 {name: {$exists: true}}로 재정의하고 모든 문서를 반환합니다. updateMany 쿼리(mongodb.ts:577-585)에 대한 동일한 기본 요소는 빌더에서 제어하는 $set 본문이 일치하는 모든 문서에 대해 실행되는 동안 전체 컬렉션으로 확장됩니다. 쿼리의 역할이 PUBLIC인 경우 packages/server/src/middleware/authorized.ts:141-148의 승인된 미들웨어가 단락됩니다. CSRF는 이 경로에 적용되지 않습니다. POST /api/v2/queries/:queryId(packages/server/src/api/routes/query.ts:63)는 세션 없이 호출을 허용하며, 공개된 x-budibase-app-id 헤더만 허용합니다. 게시된 앱 URL. 이 취약점은 3.39.12에서 수정되었습니다.
| 소스 | CVSS 버전 | 기본 점수 | 심각도 | 벡터 문자열 | 평가일 |
|---|---|---|---|---|---|
| NVDNIST | 3.1 | 10.0 | CRITICAL | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N | 2026. 06. 27. |
| OSV3rd | 3.1 | 10.0 | CRITICAL |
| CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N |
| 2026. 06. 24. |