🇰🇷 한글 설명
DataEase의 API 데이터소스 저장 기능에서 Base64 인코딩된 설정의 deTableName 필드가 적절한 검증 없이 DDL 문 생성에 사용되어 SQL injection이 가능합니다. 인증된 공격자가 특수 문자를 포함한 테이블명으로 임의 SQL 명령을 주입하여 데이터베이스 정보를 탈취할 수 있습니다.
💡 쉬운 설명
DataEase 데이터 시각화 플랫폼에서 로그인한 사용자가 테이블 이름에 악의적인 SQL 코드를 숨겨서 데이터베이스 정보를 빼낼 수 있는 취약점입니다. MySQL 버전 같은 민감한 정보가 노출될 수 있습니다.
🇺🇸 원문 (English)
DataEase is an open-source data visualization and analytics platform. Versions 2.10.20 and below contain a SQL injection vulnerability in the API datasource saving process. The deTableName field from the Base64-encoded datasource configuration is used to construct a DDL statement via simple string replacement without any sanitization or escaping of the table name. An authenticated attacker can inject arbitrary SQL commands by crafting a deTableName that breaks out of identifier quoting, enabling error-based SQL injection that can extract database information such as the MySQL version. This issue has been fixed in version 2.10.21.
📍 영향받는 시스템
DataEase 버전 2.10.20 이하
⚔️ 공격 벡터
인증된 사용자가 API 데이터소스 설정 중 deTableName 필드에 SQL 메타문자를 삽입하여 error-based SQL injection 실행
🛡️ 대응 방법
DataEase를 버전 2.10.21 이상으로 업그레이드
🔧 검증 코드
반환된 버전이 2.10.20 이하이면 취약점 존재. 2.10.21 이상이면 패치 적용됨.
curl -s http://localhost:8080/api/system/info 2>/dev/null | grep -oP '"version":\s*"\K[^"]+' || grep -m1 'version' /opt/dataease/application.properties 2>/dev/null