🇰🇷 한글 설명
Apache Airflow의 Apache Kafka provider 2.0.0 미만 버전에서 Kafka 연결의 'extra' 필드에 포함된 점 표기 경로 문자열을 검증 없이 Python 호출 가능한 객체로 변환하는 취약점이 발견되었습니다. 이로 인해 연결 설정 권한을 가진 사용자가 스케줄러 프로세스 내에서 임의의 코드를 실행하여 제어 평면을 장악할 수 있습니다.
💡 쉬운 설명
카프카 연결 설정을 수정할 수 있는 권한이 있는 사람이 악성 코드를 심어 서버의 핵심 시스템을 직접 조종할 수 있는 보안 결함입니다. 기본적으로는 안전하지만, 특정 이벤트 기능이 켜져 있는 경우 관리자 권한을 탈취당할 위험이 있습니다.
🇺🇸 원문 (English)
Apache Airflow Apache Kafka provider versions 1.15.0 before 2.0.0 resolve dotted-path strings found in a Kafka connection's `extra` field into Python callables via `import_string`, with no allowlist, and hand them to the confluent-kafka client which invokes them. Deployments that have enabled the Kafka event producer — `dag_run_events_enabled` or `task_instance_events_enabled`, both disabled by default — build that client inside the scheduler process, so a user whose only privilege is editing Airflow connections gains arbitrary code execution in the control plane; the Airflow security model limits connection-configuration users to code execution on workers, not the scheduler. Deployments using Google Managed Kafka are not affected, because that code path overwrites any user-supplied `oauth_cb`; plain brokers and Amazon MSK are exposed. Users are recommended to upgrade to apache-airflow-providers-apache-kafka 2.0.0 or later, which adds an allowlist configuration option for connection-string callbacks.
📍 영향받는 시스템
apache-airflow-providers-apache-kafka 1.15.0 ~ 1.9.9 (2.0.0 미만 버전)
⚔️ 공격 벡터
Kafka 연결 설정의 'extra' 필드에 조작된 Python 경로를 삽입하여 스케줄러 프로세스에서 코드 실행
🛡️ 대응 방법
apache-airflow-providers-apache-kafka 버전을 2.0.0 이상으로 업그레이드
🔧 검증 코드
출력된 버전 번호가 2.0.0 미만(예: 1.15.0)이면 취약한 상태입니다.
pip show apache-airflow-providers-apache-kafka | grep Version