🇰🇷 한글 설명
ArcadeDB의 폴리글랏 스크립트 샌드박스 내 차단 목록이 불완전하여 발생하는 보안 취약점입니다. UPDATE_SCHEMA 권한을 가진 사용자가 특정 자바 클래스를 이용해 샌드박스 제한을 우회하고 애플리케이션 클래스패스 내의 설정 파일이나 자격 증명을 읽을 수 있습니다.
💡 쉬운 설명
데이터베이스의 보안 제한이 허술하여, 권한이 있는 사용자가 시스템 내부의 중요한 비밀번호나 설정 파일을 몰래 훔쳐볼 수 있는 문제입니다. 다행히 컴퓨터 전체를 제어하거나 파일을 마음대로 삭제하는 수준까지는 아닙니다.
🇺🇸 원문 (English)
ArcadeDB (Maven artifact com.arcadedb:arcadedb-engine) through 26.8.1 contains an incomplete deny-list in the polyglot script sandbox: com.arcadedb.query.polyglot.HostClassLookupFilter.DENIED lists java.util.ResourceBundle as a bare class name, which is matched by exact equality and therefore does not cover its subclasses, while ScriptTriggerExecutor.ALLOWED_PACKAGES permits java.util.*. A user with the UPDATE_SCHEMA privilege (sufficient to create or alter a JavaScript trigger; no server-admin rights required) can reference java.util.PropertyResourceBundle or java.util.ListResourceBundle and invoke the inherited static ResourceBundle.getBundle(String) to read .properties resources from the application classpath, which the sandbox (IOAccess.NONE, with java.io.**, java.nio.** and java.net.** denied) is intended to make unreachable. This can disclose packaged application configuration such as database credentials and API keys; the advisory states the issue does not provide arbitrary host filesystem read or remote code execution. Fixed in 26.9.1.
📍 영향받는 시스템
ArcadeDB (com.arcadedb:arcadedb-engine) 26.8.1 이하 버전
⚔️ 공격 벡터
UPDATE_SCHEMA 권한을 이용해 JavaScript 트리거를 생성하고, 차단되지 않은 자바 클래스를 호출하여 클래스패스 내 리소스를 읽음
🛡️ 대응 방법
ArcadeDB를 취약점이 해결된 버전인 26.9.1 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 26.9.1 미만이면 취약한 상태입니다.
mvn dependency:get -Dartifact=com.arcadedb:arcadedb-engine -Dtransitive=false | grep -oE '[0-9]+\.[0-9]+\.[0-9]+'
💻 영향받는 소프트웨어
IBM WebSphere Application Server