🇰🇷 한글 설명
OpenStack Swift 2.38.0 이하 버전의 S3API 미들웨어에서 s3_acl=true 설정 시 Swift 고유 제어 헤더를 적절히 검증하지 않는 취약점이 발견되었습니다. 공격자는 S3 API 요청에 특정 헤더를 주입하여 권한이 없는 다른 테넌트의 객체를 자신의 버킷으로 서버 측 복사할 수 있으며, 이를 통해 데이터 접근 권한을 우회할 수 있습니다.
💡 쉬운 설명
해커가 특수한 명령어를 섞어 보내면, 시스템이 이를 제대로 확인하지 못하고 다른 사용자의 비밀 파일을 해커의 저장소로 몰래 복사해주는 보안 구멍입니다. 이로 인해 허락 없이 다른 사람의 데이터를 훔쳐볼 수 있는 위험이 있습니다.
🇺🇸 원문 (English)
In OpenStack Swift through 2.38.0, the S3API middleware does not sanitize Swift-native control headers (X-Copy-From, X-Copy-From-Account) from S3 API requests when s3_acl=true. An
attacker can inject these headers into a signed PUT request targeting their own bucket, causing Swift to perform a server-side copy from another tenant's private object. The source object authorization is bypassed because the S3API middleware has already authorized the request against the destination. The attacker can read any object whose project_id, container name, and object name are known, regardless of the source object's ACLs or ownership. This requires the non-default s3_acl=true configuration.
📍 영향받는 시스템
OpenStack Swift versions up to 2.38.0 with s3_acl=true configuration
⚔️ 공격 벡터
S3 API 요청 시 X-Copy-From 또는 X-Copy-From-Account 헤더를 주입하여 권한 검증을 우회하는 방식
🛡️ 대응 방법
OpenStack Swift를 최신 보안 패치가 적용된 버전으로 업데이트하거나, s3_acl 설정을 기본값으로 변경하십시오.
🔧 검증 코드
출력된 버전이 2.38.0 이하인지 확인하여 취약한 버전 여부를 판단합니다.
swift --version | grep -E '2\[0-3]\.[0-8]'