🇰🇷 한글 설명
Baserow 2.2.0부터 2.3.3까지 버전에는 index() 수식 함수에서 SQL 인젝션 취약점이 존재합니다. 수식 필드를 생성하거나 수정할 수 있는 낮은 권한의 인증된 사용자가 문서화되지 않은 네 번째 인수를 전달하면, 이것이 SQL 템플릿으로 취급되어 PostgreSQL 표현식에 직접 삽입됩니다. 이로 인해 사용자의 워크스페이스 권한 밖의 데이터를 읽거나 수정할 수 있습니다.
💡 쉬운 설명
Baserow라는 데이터베이스 도구에서 일반 사용자가 특정 수식 기능을 악용해 데이터베이스에 몰래 명령을 보낼 수 있는 문제입니다. 이를 통해 본인에게 허용되지 않은 다른 사용자의 데이터까지 볼 수 있거나 바꿀 수 있습니다.
🇺🇸 원문 (English)
Baserow versions 2.2.0 through 2.3.3 contain an SQL injection vulnerability in the index() formula function. A low-privileged authenticated user who can create or modify Formula fields can provide an undocumented fourth argument that is treated as a SQL template and interpolated directly into a PostgreSQL expression. The generated SQL executes through Baserow's database connection with the Baserow PostgreSQL role permissions, allowing data outside the user's workspace permissions to be read or modified.
📍 영향받는 시스템
Baserow 2.2.0 ~ 2.3.3 (PostgreSQL 사용 환경)
⚔️ 공격 벡터
수식 필드 생성/수정 권한을 가진 인증 사용자가 index() 함수의 비공개 4번째 인수에 SQL 구문을 삽입
🛡️ 대응 방법
Baserow를 2.3.4 이상 등 패치된 최신 버전으로 업데이트하고, 불필요한 수식 필드 생성 권한을 제한
🔧 검증 코드
출력된 이미지 태그의 버전이 2.2.0~2.3.3 범위에 해당하면 취약하며, 2.3.4 이상이면 패치된 상태입니다. 출력이 없으면 Docker 기반 Baserow가 실행 중이 아닙니다.
docker ps --format '{{.Image}}' | grep -i baserow 2>/dev/null