🇰🇷 한글 설명
DataRoom 3.0.0 이하 버전의 MyBatisService.generateSql 함수에 SQL 인젝션 취약점이 존재합니다. sharer 권한을 가진 사용자가 조작된 dataset 파라미터를 전달하여 임의의 SQL을 실행할 수 있습니다. 공격자는 /dataRoom/dataset/run 엔드포인트에 조작된 inputParam 값을 보내 따옴표 없는 문자열 파라미터나 MySQL 백슬래시 이스케이프를 악용할 수 있습니다.
💡 쉬운 설명
데이터 공유 시스템에서 일부 입력값 처리가 안전하지 않아 권한이 있는 사용자가 데이터베이스에 몰래 명령을 끼워 넣을 수 있습니다. 이를 통해 저장된 데이터를 열람하거나 변경할 위험이 있습니다.
🇺🇸 원문 (English)
DataRoom through 3.0.0 contains an sql injection vulnerability in MyBatisService.generateSql that allows sharer-role users to inject SQL by supplying crafted dataset parameters. Attackers can send crafted inputParam values to /dataRoom/dataset/run, exploiting unquoted string parameters or MySQL backslash escapes, to execute injected SQL against the database.
📍 영향받는 시스템
DataRoom 3.0.0 이하 버전
⚔️ 공격 벡터
sharer 권한 계정으로 /dataRoom/dataset/run에 조작된 inputParam을 전송해 SQL 인젝션 수행
🛡️ 대응 방법
DataRoom을 3.0.0 초과의 패치된 버전으로 업데이트하고, 공식 보안 공지에 따라 MyBatis 쿼리 파라미터를 바인딩 방식으로 처리하도록 조치
🔧 검증 코드
설치된 패키지 목록이나 VERSION 파일에서 버전이 3.0.0 이하로 표시되면 취약할 수 있고, 아무 결과도 없으면 이 컴퓨터에 DataRoom이 설치되어 있지 않은 것입니다.
dpkg -l dataroom 2>/dev/null | grep -E 'dataroom|DataRoom'; cat /opt/dataroom/VERSION 2>/dev/null; ls /opt/dataroom 2>/dev/null | head -n 20