🇰🇷 한글 설명
Apache Kafka Connect의 REST API에 있는 /connector-plugins/{connector-type}/config/validate 엔드포인트는 커넥터 설정을 검증하는 기능을 제공합니다. 그런데 Configuration Provider를 통해 숨겨진 민감한 설정값을 이 엔드포인트가 실행 시점에 해석하여 평문으로 반환할 수 있는 문제가 있습니다. 이로 인해 엔드포인트에 접근 가능한 공격자가 워커에 설치된 Provider를 통해 민감 정보를 탈취할 수 있습니다.
💡 쉬운 설명
Kafka Connect는 비밀번호 같은 민감한 설정을 숨겨서 저장하는 기능을 가지고 있습니다. 이 취약점은 설정 검증 기능을 악용해 숨겨진 비밀번호 같은 값을 평문으로 꺼내 볼 수 있게 만듭니다.
🇺🇸 원문 (English)
Apache Kafka Connect has the /connector-plugins/{connector-type}/config/validate endpoint on its REST API to validate connector configurations.
Apache Kafka Connect also support Configuration Providers which enable to hide the values of sensitive configuration and only resolve them at runtime.
An attacker with access to the validate endpoint can use it to resolve and return plaintext values via any of the configuration providers installed on a Connect worker.
Users are recommended to upgrade to version 4.2.2, 4.3.2, 4.4.0 or above, which fix this issue.
📍 영향받는 시스템
Apache Kafka Connect 4.2.2 미만, 4.3.2 미만, 4.4.0 미만 버전
⚔️ 공격 벡터
REST API의 config/validate 엔드포인트에 접근 가능한 공격자가 Configuration Provider를 참조하는 설정을 전달해 평문 민감 정보를 응답으로 받아냄
🛡️ 대응 방법
Apache Kafka Connect를 4.2.2, 4.3.2, 4.4.0 이상 버전으로 업그레이드하고 REST API 접근을 신뢰된 네트워크로 제한
🔧 검증 코드
출력된 버전이 4.2.2, 4.3.2, 4.4.0 이상이면 조치 완료이며, 그보다 낮은 버전이면 취약한 상태이므로 업그레이드가 필요합니다.
kafka-run-class.sh org.apache.kafka.connect.cli.ConnectDistributed --version 2>/dev/null || ls /opt/kafka*/libs/connect-api*.jar 2>/dev/null