🇰🇷 한글 설명
Apache IoTDB의 일부 인터페이스가 쿼리의 시간 범위와 집계 간격에 대한 합리적인 제한을 두지 않습니다. 공격자는 매우 큰 시간 범위와 최소 간격을 조합한 극단적인 파라미터로 요청을 구성할 수 있으며, 이로 인해 DataNode가 거대한 결과 집합을 메모리에 생성하여 Java 힙이 소진되고 프로세스가 중단됩니다. 영향 버전은 1.3.3 이상 2.0.8 미만이며, 2.0.8 버전으로 업그레이드하면 해결됩니다.
💡 쉬운 설명
데이터베이스에 지나치게 큰 범위의 조회 요청을 보내면 서버의 메모리가 가득 차서 멈출 수 있는 취약점입니다. 공격자는 이를 이용해 서비스를 중단시킬 수 있습니다.
🇺🇸 원문 (English)
Uncontrolled Resource Consumption vulnerability in Apache IoTDB.
Some interface fails to impose reasonable
limits on the time span and aggregation interval of the query. An attacker
can construct a request with extreme parameters (e.g., a very large time
range combined with a minimal interval). This forces the DataNode to build
an enormous result set in memory, which exhausts the Java heap and causes
the DataNode process to crash.
This issue affects Apache IoTDB: from 1.3.3 before 2.0.8.
Users are recommended to upgrade to version 2.0.8, which fixes the issue.
📍 영향받는 시스템
Apache IoTDB 1.3.3 이상 2.0.8 미만 버전
⚔️ 공격 벡터
네트워크로 접근 가능한 조회 인터페이스에 극단적인 시간 범위와 최소 집계 간격을 가진 요청을 전송하여 DataNode의 메모리를 고갈시킴
🛡️ 대응 방법
Apache IoTDB를 2.0.8 이상 버전으로 업그레이드
🔧 검증 코드
출력된 버전이 1.3.3 이상 2.0.8 미만이면 취약하며, 2.0.8 이상이면 패치된 상태이고, 'IoTDB not found'가 나오면 설치되어 있지 않은 것입니다.
ls /opt/iotdb 2>/dev/null && cat /opt/iotdb/VERSION 2>/dev/null || (command -v iotdb >/dev/null && iotdb -v 2>/dev/null) || echo 'IoTDB not found'