🇰🇷 한글 설명
Grav 2.0.4 미만 버전의 .htaccess 설정에서 민감한 파일 확장자 차단 규칙에 [NC] 플래그가 누락되어 대소문자를 구분하는 문제가 있습니다. 이로 인해 Windows나 macOS와 같은 대소문자를 구분하지 않는 파일 시스템에서는 확장자를 대문자로 변환하여 보안 제한을 우회하고 API 키나 자격 증명이 포함된 설정 파일을 탈취할 수 있습니다.
💡 쉬운 설명
보안 규칙이 대소문자를 엄격하게 구분하여, 파일 확장자를 대문자로 바꾸어 요청하면 차단 시스템을 속일 수 있는 취약점입니다. 이를 통해 해커가 서버의 중요한 비밀번호나 설정 파일을 몰래 읽어갈 수 있습니다.
🇺🇸 원문 (English)
Grav before 2.0.4 ships a default .htaccess (and reference webserver-configs/htaccess.txt) whose rules blocking access to sensitive file types (.yaml, .php, .json, etc.) lack the [NC] flag, making extension matching case-sensitive. On case-insensitive filesystems (Windows/NTFS, macOS/HFS+, or Docker volume mounts), an unauthenticated attacker can request these files with uppercase or mixed-case extensions (e.g., .YAML, .PHP) to bypass the restrictions and read sensitive configuration files that may contain API keys and credentials.
📍 영향받는 시스템
Grav versions before 2.0.4
⚔️ 공격 벡터
대소문자 구분이 없는 파일 시스템에서 확장자를 대문자(예: .YAML)로 변환하여 민감한 파일에 접근하는 방식
🛡️ 대응 방법
Grav를 2.0.4 버전 이상으로 업데이트하거나 .htaccess 설정의 차단 규칙에 [NC] 플래그를 추가하십시오.
🔧 검증 코드
.htaccess 파일 내의 차단 규칙에 [NC] 플래그가 포함되어 있지 않으면 취약한 상태입니다.
grep -r 'NC' .htaccess 2>/dev/null || echo 'Vulnerable: [NC] flag missing'