🇰🇷 한글 설명
Apache Shiro의 인증 우회 취약점으로, 정적 파일 요청 시 파일명의 대소문자를 변경하여 보안 필터를 우회할 수 있습니다. macOS와 같이 대소문자를 구분하지 않는 파일 시스템을 사용하는 환경에서 특히 위험합니다.
💡 쉬운 설명
파일 이름의 대소문자를 살짝 바꾸는 것만으로도 보안 검사를 통과하여 허가되지 않은 파일에 접근할 수 있는 문제입니다. 이는 마치 문 잠금 장치가 대문자와 소문자를 다르게 인식하여 보안을 무력화하는 것과 같습니다.
🇺🇸 원문 (English)
Authentication Bypass by Alternate Name vulnerability in Apache Shiro.
This issue affects Apache Shiro: before 2.0.7.
Users are recommended to upgrade to version 2.0.7, which fixes the issue.
The issue only effects static files. If static files are served from a case-insensitive filesystem,
such as default macOS setup, static files may be accessed by varying the case of the filename in the request.
If only lower-case (common default) filters are present in Shiro, they may be bypassed this way.
Shiro 2.1.0 and later has a new parameters to remediate this issue
shiro.ini: filterChainResolver.caseInsensitive = true
application.properties: shiro.caseInsensitive=true
Shiro 3.0.0 and later makes this the default in shiro.ini-based configurations.
Shiro 3.0.1 and later makes this the default in all configurations, including programmatic and Spring / Spring Boot.
📍 영향받는 시스템
Apache Shiro 2.0.7 미만 버전
⚔️ 공격 벡터
정적 파일 요청 시 파일명의 대소문자를 변형하여 기존의 소문자 전용 보안 필터를 우회함
🛡️ 대응 방법
Apache Shiro 2.0.7 이상으로 업그레이드하거나, 설정 파일에서 caseInsensitive 옵션을 true로 활성화함
🔧 검증 코드
프로젝트 설정 파일 내의 Apache Shiro 버전을 확인하여 2.0.7 미만인지 체크합니다.
grep -r "shiro" /path/to/your/project | grep -E 'version|dependency'