🇰🇷 한글 설명
Tinyauth 5.1.2 미만 버전에서 호스트 이름의 대소문자 구분 방식 차이로 인해 발생하는 인증 우회 취약점입니다. 인증된 저권한 사용자가 호스트 이름의 대소문자를 변경하여 접근 제어를 우회하고 허용되지 않은 앱에 접근할 수 있습니다.
💡 쉬운 설명
로그인 권한은 있지만 특정 앱에는 들어갈 수 없는 사용자가, 주소의 대소문자만 살짝 바꿔서 보안 검사를 통과하는 문제입니다. 이로 인해 원래는 접근이 금지된 서비스까지 마음대로 이용할 수 있게 됩니다.
🇺🇸 원문 (English)
Tinyauth is an authentication and authorization server. Prior to 5.1.2, Tinyauth compares forwarded hostnames case-sensitively while reverse proxies route equivalent hostnames case-insensitively, allowing an authenticated low-privilege user to bypass per-app access controls with a differently cased hostname. The lookup in internal/service/access_controls_service.go through lookupStaticACLs and GetAccessControls, and the Docker-label fallback in internal/service/docker_service.go through GetLabels, can miss the configured app and return an empty access-control object. internal/controller/proxy_controller.go proxyHandler then treats the empty user, group, OAuth, LDAP, and IP restrictions as permissive and returns an authenticated result for an app that should exclude the user. Unauthenticated users remain subject to login, and global login-time allowlists are not bypassed. This issue is fixed in version 5.1.2.
📍 영향받는 시스템
Tinyauth 버전 5.1.2 미만
⚔️ 공격 벡터
인증된 저권한 사용자가 호스트 이름의 대소문자를 변경하여 리버스 프록시와 서버 간의 불일치를 이용한 접근 제어 우회
🛡️ 대응 방법
Tinyauth를 최신 보안 패치가 적용된 버전 5.1.2 이상으로 업데이트하십시오.
🔧 검증 코드
명령어 결과에 5.1.2 미만의 버전 번호가 출력되면 취약한 상태입니다.
tinyauth --version 2>/dev/null | grep -E '5\.[0-1]\.[0-1]'