🇰🇷 한글 설명
Red Hat Ansible Automation Platform의 automation-controller에서 API 4XX 오류 로그 형식을 설정하는 과정 중 보안 결함이 발견되었습니다. 관리자가 조작한 Python 포맷 스트링 템플릿을 통해 사용자 객체에서 애플리케이션 설정으로 접근하여 Django 비밀 키와 데이터베이스 비밀번호를 탈취할 수 있습니다. 탈취된 정보는 외부 로그 수집기로 전송될 수 있으며, 이를 통해 저장된 모든 자격 증명의 복호화 및 데이터베이스 직접 접근이 가능해집니다.
💡 쉬운 설명
관리자 권한을 가진 공격자가 로그 메시지 형식을 악용하여 시스템의 핵심 비밀번호를 몰래 빼낼 수 있는 취약점입니다. 이 비밀번호가 유출되면 시스템에 저장된 모든 암호와 데이터베이스에 접근할 수 있어 매우 위험합니다.
🇺🇸 원문 (English)
A flaw was found in Red Hat Ansible Automation Platform's automation-
controller. The setting that formats the log message emitted for API 4XX errors
is an administrator-controlled Python format-string template that is rendered
with a live user object as an argument. Because Python string formatting permits
attribute and item traversal on its arguments, an administrator can craft a
template that walks from the user object into the application settings and reads
the Django secret key and the database password. The formatted message is written
to a logger that can be forwarded to an external log aggregator, whose destination
is also administrator-controlled, allowing the secrets to be sent off the host. An
authenticated administrator can thereby obtain the master encryption key used to
protect all stored credentials and the database service password, enabling offline
decryption of every stored credential, forgery of user sessions, and direct
access to the controller database.
📍 영향받는 시스템
Red Hat Ansible Automation Platform (automation-controller)
⚔️ 공격 벡터
인증된 관리자가 Python 포맷 스트링 템플릿을 조작하여 객체 속성을 탐색하고 민감한 정보를 로그로 출력 및 외부로 전송
🛡️ 대응 방법
Red Hat에서 제공하는 최신 보안 패치를 적용하여 로그 포맷팅 로직을 수정해야 합니다.
🔧 검증 코드
설치된 Ansible Automation Platform의 버전을 확인하여 취약점이 해결된 패치 버전인지 확인합니다.
rpm -q ansible-automation-platform 2>/dev/null || ansible-automation-platform --version 2>/dev/null