
CVE-2025-62506 검증 스크립트로, MinIO 서비스 계정의 권한 상승 취약점을 테스트하여 제한된 계정이 인라인 정책을 우회해 무제한 계정을 생성할 수 있는지 확인합니다.
이 저장소는 MinIO 서비스 계정 및 STS(보안 토큰 서비스) 계정의 권한 상승 취약점인 CVE-2025-62506에 대한 검증 스크립트를 포함합니다.
CVE-2025-62506은 제한된 서비스 계정 및 STS 계정이 "자신의" 계정 작업을 수행할 때, 특히 동일한 사용자에 대해 새 서비스 계정을 생성할 때 인라인 정책 제한을 우회할 수 있는 권한 상승 취약점입니다.
이 취약점은 cmd/iam.go의 IAM 정책 검증 로직에 존재합니다. 제한된 계정이 자신의 계정에 대한 작업(예: 서비스 계정 생성)을 수행할 때 세션 정책을 검증하는 과정에서 코드가 DenyOnly 인수를 잘못 사용했습니다.
DenyOnly 플래그는 계정이 자신의 계정과 관련된 작업을 수행할 수 있도록 명시적으로 거부되었는지만 확인하는 데 사용됩니다. 그러나 세션 정책(하위 정책)이 존재하는 경우, 시스템은 해당 작업이 세션 정책에 의해 실제로 허용되는지 검증해야 하며, 단순히 거부되지 않았다는 것만 확인해서는 안 됩니다.
8.1 (높음) - CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
RELEASE.2025-10-15T17-29-55Z 이전의 모든 버전
RELEASE.2025-10-15T17-29-55Z
verify_cve_2025_62506.py 스크립트는 MinIO 설치가 CVE-2025-62506에 취약한지 테스트합니다.
docker-compose.yml로 시작 가능)miniodocker-compose up -d
pip install minio
검증 스크립트는 다음 단계를 따릅니다:
bucket1, bucket2, bucket3의 세 가지 테스트 버킷을 생성합니다.bucket1 및 bucket2에만 액세스를 허용하는 IAM 정책을 생성합니다.s3:* (모든 S3 작업)bucket1/*, bucket2/*bucket3 포함)restrictedrestricted123bucket1 및 bucket2만 볼 수 있음bucket3)에 액세스하려고 시도합니다.docker-compose up -d
python verify_cve_2025_62506.py
🚀 CVE-2025-62506 취약점 검증 스크립트
============================================================
📋 스크립트 설명:
이 스크립트는 MinIO 서비스 계정 권한 상승 취약점(CVE-2025-62506)을 테스트합니다.
이 취약점은 제한된 서비스 계정이 새 계정 생성 시 인라인 정책을 우회할 수 있게 합니다.
============================================================
📦 1단계: 테스트 버킷 생성
bucket1, bucket2, bucket3의 세 가지 테스트 버킷 생성 중
계정 액세스 권한 제한 테스트에 사용됨
----------------------------------------
✅ 버킷 생성됨: bucket1
✅ 버킷 생성됨: bucket2
✅ 버킷 생성됨: bucket3
🔒 2단계: 제한된 정책 생성
bucket1 및 bucket2에만 액세스를 허용하는 정책 생성 중
이 정책은 제한된 서비스 계정에 적용됩니다.
----------------------------------------
✅ 정책 생성됨: restricted-policy
📋 정책 권한:
- 허용 작업: s3:* (모든 S3 작업)
- 허용 리소스: bucket1/*, bucket2/*
- 거부 리소스: 기타 모든 버킷
👤 3단계: 제한된 서비스 계정 생성
위의 제한된 정책이 적용된 서비스 계정 생성 중
이 계정은 bucket1 및 bucket2에만 액세스할 수 있습니다.
----------------------------------------
✅ 서비스 계정 생성됨: restricted
📋 계정 권한:
- 액세스 키: restricted
- 정책: 인라인 제한 정책(bucket1 및 bucket2만)
- 예상 동작: 지정된 버킷에만 액세스 가능
🧪 4단계: 제한된 계정 액세스 테스트
제한된 계정을 사용하여 버킷을 나열하고 권한이 올바르게 제한되었는지 확인 중
예상 결과: bucket1 및 bucket2만 볼 수 있음
----------------------------------------
✅ 제한된 계정이 허용된 버킷으로 올바르게 제한됨
액세스 가능한 버킷: ['bucket1', 'bucket2']
⚡ 5단계: 권한 상승 시도(취약점 테스트)
제한된 계정을 사용하여 새 서비스 계정 생성을 시도 중
정책이 지정되지 않은 새 계정은 상위 제한을 상속해야 합니다.
취약점: 제한된 계정이 정책을 우회하여 제한 없는 새 계정을 생성할 수 있음
----------------------------------------
✅ 서비스 계정 생성됨: newroot
📋 새 서비스 계정을 사용하여 승인되지 않은 bucket3에 액세스 시도 중
⬆️ 권한 확인을 위해 bucket3에 객체 업로드 시도 중
⬇️ 권한 확인을 위해 객체 나열 시도 중
객체 발견됨: test-object
❌ 취약함: 제한된 계정이 새 서비스 계정을 성공적으로 생성함
새 계정 권한: 제한 없음(전체 상위 권한 상속)
이는 CVE-2025-62506 취약점이 존재함을 나타냅니다!
🧹 테스트 리소스 정리 중...
----------------------------------------
✅ 서비스 계정 제거됨: restricted
✅ 서비스 계정 제거됨: newroot
✅ 정책 제거됨: restricted-policy
✅ 버킷 제거됨: bucket1
✅ 버킷 제거됨: bucket2
✅ 버킷 제거됨: bucket3
============================================================
📊 검증 결과
============================================================
❌ 결과: 취약함 - CVE-2025-62506 존재
💡 권장 사항: 패치된 버전 RELEASE.2025-10-15T17-29-55Z 이상으로 즉시 업그레이드하세요.
🔗 참조: https://github.com/minio/minio/security/advisories/GHSA-jjjj-jwhf-8rgr
============================================================
🚀 CVE-2025-62506 취약점 검증 스크립트
============================================================
📋 스크립트 설명:
이 스크립트는 MinIO 서비스 계정 권한 상승 취약점(CVE-2025-62506)을 테스트합니다.
이 취약점은 제한된 서비스 계정이 새 계정 생성 시 인라인 정책을 우회할 수 있게 합니다.
============================================================
📦 1단계: 테스트 버킷 생성
bucket1, bucket2, bucket3의 세 가지 테스트 버킷 생성 중
계정 액세스 권한 제한 테스트에 사용됨
----------------------------------------
✅ 버킷 생성됨: bucket1
✅ 버킷 생성됨: bucket2
✅ 버킷 생성됨: bucket3
🔒 2단계: 제한된 정책 생성
bucket1 및 bucket2에만 액세스를 허용하는 정책 생성 중
이 정책은 제한된 서비스 계정에 적용됩니다.
----------------------------------------
✅ 정책 생성됨: restricted-policy
📋 정책 권한:
- 허용 작업: s3:* (모든 S3 작업)
- 허용 리소스: bucket1/*, bucket2/*
- 거부 리소스: 기타 모든 버킷
👤 3단계: 제한된 서비스 계정 생성
위의 제한된 정책이 적용된 서비스 계정 생성 중
이 계정은 bucket1 및 bucket2에만 액세스할 수 있습니다.
----------------------------------------
✅ 서비스 계정 생성됨: restricted
📋 계정 권한:
- 액세스 키: restricted
- 정책: 인라인 제한 정책(bucket1 및 bucket2만)
- 예상 동작: 지정된 버킷에만 액세스 가능
🧪 4단계: 제한된 계정 액세스 테스트
제한된 계정을 사용하여 버킷을 나열하고 권한이 올바르게 제한되었는지 확인 중
예상 결과: bucket1 및 bucket2만 볼 수 있음
----------------------------------------
✅ 제한된 계정이 허용된 버킷으로 올바르게 제한됨
액세스 가능한 버킷: ['bucket1', 'bucket2']
⚡ 5단계: 권한 상승 시도(취약점 테스트)
제한된 계정을 사용하여 새 서비스 계정 생성을 시도 중
정책이 지정되지 않은 새 계정은 상위 제한을 상속해야 합니다.
취약점: 제한된 계정이 정책을 우회하여 제한 없는 새 계정을 생성할 수 있음
----------------------------------------
✅ 안전함: 제한된 계정이 새 서비스 계정 생성에 실패함
오류: 권한이 올바르게 거부됨
세부 정보: Access Denied.
🧹 테스트 리소스 정리 중...
----------------------------------------
✅ 서비스 계정 제거됨: restricted
✅ 정책 제거됨: restricted-policy
✅ 버킷 제거됨: bucket1
✅ 버킷 제거됨: bucket2
✅ 버킷 제거됨: bucket3
============================================================
📊 검증 결과
============================================================
✅ 결과: 안전함 - CVE-2025-62506 패치됨
🎉 귀하의 MinIO 버전에는 이 취약점이 패치되어 있습니다.
============================================================
이 검증 스크립트는 보안 테스트 목적으로 있는 그대로 제공됩니다.