🇰🇷 한글 설명
InvoicePlane 1.7.2 버전에서 Users::form() 함수가 user_id 1에 대한 객체 수준 권한 검사를 수행하지 않는 취약점이 발견되었습니다. 이를 통해 보조 관리자가 기본 관리자의 권한을 읽기 전용으로 변경하여 루트 계정의 권한을 박탈하고 시스템 접근을 차단할 수 있습니다.
💡 쉬운 설명
관리자 권한이 낮은 사용자가 시스템의 최고 관리자 계정을 조작하여 관리자 권한을 뺏어버릴 수 있는 보안 결함입니다. 이 공격을 받으면 진짜 관리자가 자신의 계정으로 로그인하거나 시스템을 제어할 수 없게 됩니다.
🇺🇸 원문 (English)
InvoicePlane is a self-hosted open source application for managing invoices, clients, and payments. In version 1.7.2, Users::form() performs no object-level authorization check on user_id = 1. A Secondary Administrator (user_type = 1, user_id != 1) can rewrite the Primary Administrator's user_type to 2 (Guest / read-only), destroying the root account's privilege and locking the legitimate owner out of the instance. At time of publication, there are no publicly available patches.
📍 영향받는 시스템
InvoicePlane version 1.7.2
⚔️ 공격 벡터
보조 관리자 권한을 가진 사용자가 권한 검사 미비점을 악용하여 기본 관리자(user_id=1)의 계정 유형을 수정
🛡️ 대응 방법
공식 보안 패치가 출시될 때까지 관리자 권한 관리에 주의하고, 패치 적용 즉시 업데이트를 수행하십시오.
🔧 검증 코드
명령어 결과에서 Users::form() 함수 호출 부분에 user_id 1에 대한 권한 검증 로직이 없는지 확인하십시오.
grep -r "Users::form()" /path/to/invoiceplane/src/ 2>/dev/null