🇰🇷 한글 설명
ArcadeDB 26.8.1 이하 버전에서 LSM 인덱스 파일이나 TimeSeries 엔진을 통해 데이터에 접근할 때 권한 검사가 누락되는 취약점이 발견되었습니다. 인증된 사용자는 특정 타입에 대한 읽기/삭제 권한이 없더라도 SQL 문을 통해 인덱스 키 값, 레코드 ID, 시계열 샘플 등을 조회하거나 인덱스 항목을 삭제할 수 있습니다. 이는 데이터 불일치를 유발하고 고유 제약 조건을 무력화할 수 있습니다.
💡 쉬운 설명
권한이 없는 사용자가 데이터베이스의 숨겨진 정보를 몰래 훔쳐보거나 데이터의 색인(인덱스)을 망가뜨릴 수 있는 보안 결함입니다. 이를 통해 데이터의 규칙을 깨뜨리거나 중요한 정보를 유출할 위험이 있습니다.
🇺🇸 원문 (English)
ArcadeDB (Maven artifact com.arcadedb:arcadedb-engine) through 26.8.1 enforces its per-type/per-record access-control rules only in LocalBucket, keyed on file id. Query-execution paths that reach record data through LSM index files or the TimeSeries engine never invoke that permission check, so an authenticated user who is denied readRecord/deleteRecord on a type can still, with a single ordinary SQL statement, read the type's indexed key values and record IDs (e.g. SELECT key, rid FROM INDEX:Type[field]), read MAX/MIN values via the index shortcut, read and count TimeSeries samples, learn the type's record count, and delete index entries (DELETE FROM INDEX:Type[field]), which desynchronizes the index from the data and can defeat unique constraints. Index and type names needed for exploitation are discoverable because SELECT FROM schema:indexes is unfiltered. The issue affects both embedded and server deployments and all transports (HTTP, Bolt, Postgres, Gremlin) once a principal is bound. Fixed in 26.9.1.
📍 영향받는 시스템
ArcadeDB (com.arcadedb:arcadedb-engine) 26.8.1 이하 버전
⚔️ 공격 벡터
인증된 사용자가 SQL 문(SELECT/DELETE FROM INDEX:...)을 사용하여 권한 검사를 우회하여 인덱스 데이터에 접근
🛡️ 대응 방법
ArcadeDB를 26.9.1 이상의 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 정보가 26.9.1 미만인 경우 취약한 버전이 사용 중임을 의미합니다.
mvn dependency:tree -Dincludes=com.arcadedb:arcadedb-engine | grep 'arcadedb-engine'