🇰🇷 한글 설명
Piccolo Admin 1.14.0 미만 버전에서 발생하는 취약점으로, 비관리자 권한을 가진 사용자가 세션 테이블에 대한 GET 요청을 통해 타인의 활성 세션 토큰을 탈취할 수 있습니다. 탈취한 토큰을 사용하여 슈퍼유저로 사칭할 수 있으며, 최종적으로 공격자 자신의 계정에 슈퍼유저 권한을 부여할 수 있습니다.
💡 쉬운 설명
관리자 권한이 없는 일반 관리자가 다른 사람의 로그인 정보를 몰래 훔쳐볼 수 있는 보안 구멍이 있습니다. 이를 통해 공격자는 시스템의 모든 권한을 가진 최고 관리자로 변신하여 시스템을 장악할 수 있습니다.
🇺🇸 원문 (English)
Piccolo Admin is an admin interface and content management system for Python, built on top of Piccolo. Prior to 1.14.0, piccolo_admin/endpoints.py uses superuser_validators to block PUT, PATCH, DELETE, and POST requests by non-superusers but permits GET requests to configured user and session tables, while piccolo_api/session_auth/tables.py exposes SessionsBase.token because the token column is not secret. In deployments that add the Sessions and User tables to create_admin, a non-superuser administrator can call GET /api/tables/sessions/, obtain another user's live session token, replay it as the Cookie id value to impersonate a superuser, and permanently set superuser to true on the attacker's own row. This issue is fixed in version 1.14.0.
📍 영향받는 시스템
Piccolo Admin versions prior to 1.14.0
⚔️ 공격 벡터
비관리자 계정으로 세션 테이블에 GET 요청을 보내 토큰을 탈취한 후 세션 재전송 공격(Replay Attack) 수행
🛡️ 대응 방법
Piccolo Admin을 1.14.0 버전 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 1.14.0 미만이면 취약한 상태이며, 1.14.0 이상이면 안전합니다.
pip show piccolo-admin | grep Version