🇰🇷 한글 설명
pyLoad 0.5.0b3.dev97까지의 버전에서 로그인 시 사용자의 역할(role)과 권한(permission)을 세션에 캐시하며, 관리자가 데이터베이스에서 권한을 변경해도 캐시된 값을 계속 사용하여 권한을 부여한다. 결과적으로 이미 로그인한 사용자는 로그아웃이나 세션 만료 때까지 회수된 권한을 계속 사용할 수 있다. 이는 세션 일관성 문제로 선택적 보안 기능 활성화로는 해결되지 않는다.
💡 쉬운 설명
pyLoad에서 관리자가 사용자의 권한을 제거해도, 이미 로그인한 사용자는 권한이 있는 것처럼 계속 행동할 수 있다. 사용자가 로그아웃할 때까지 이전의 특수 권한으로 작업을 수행할 수 있다는 뜻이다.
🇺🇸 원문 (English)
pyLoad is a free and open-source download manager written in Python. Versions up to and including 0.5.0b3.dev97 cache `role` and `permission` in the session at login and continues to authorize requests using these cached values, even after an admin changes the user's role/permissions in the database. As a result, an already logged-in user can keep old (revoked) privileges until logout/session expiry, enabling continued privileged actions. This is a core authorization/session-consistency issue and is not resolved by toggling an optional security feature. Commit e95804fb0d06cbb07d2ba380fc494d9ff89b68c1 contains a fix for the issue.
📍 영향받는 시스템
pyLoad 버전 0.5.0b3.dev97 이하
⚔️ 공격 벡터
로그인된 상태에서 관리자가 권한을 회수한 후에도 캐시된 이전 권한으로 특권 작업을 계속 수행
🛡️ 대응 방법
pyLoad를 e95804fb0d06cbb07d2ba380fc494d9ff89b68c1 커밋 이후의 최신 버전으로 업그레이드
🔧 검증 코드
Version이 0.5.0b3.dev97보다 높으면 안전하고, 낮거나 같으면 취약한 버전이다.
pip show pyload 2>/dev/null | grep -i version