🇰🇷 한글 설명
오픈소스 빌링 소프트웨어인 CtrlPanel의 1.1.1 이하 버전에서 권한 제어 미흡 취약점이 발견되었습니다. 관리자 컨트롤러의 일부 쓰기 메서드에 권한 검증이 누락되어, 인증된 일반 사용자가 직접적인 API 요청을 통해 관리자 권한을 탈취하거나 시스템 설정을 임의로 변경할 수 있습니다.
💡 쉬운 설명
로그인한 일반 사용자가 관리자만 할 수 있는 중요한 설정들을 몰래 바꿀 수 있는 보안 구멍이 발견되었습니다. 이를 통해 공격자는 관리자 권한을 얻거나 결제 정보, 사용자 계정 등을 마음대로 조작할 수 있습니다.
🇺🇸 원문 (English)
CtrlPanel is open-source billing software for hosting providers. Versions 1.1.1 and prior contains a broken access control vulnerability where multiple admin controllers enforce permission checks on form display methods but omit equivalent checks on the corresponding write methods, allowing any authenticated user to bypass RBAC via direct POST/PATCH requests. Controllers missing checks on write methods store() and update() include ApplicationApiController (admin.api.write), CouponController (admin.coupons.write), PartnerController (admin.partners.write), ShopProductController (admin.store.write), UsefulLinkController (admin.useful_links.write), and VoucherController (admin.voucher.write); ProductController (admin.products.edit), ServerController (write/change_owner/change_identifier), and UserController (write/change_email/change_credits/change_username/change_password/change_role/change_referral/change_ptero/change_serverlimit) are missing checks on update() only, and ActivityLogController exposed empty stub store()/update() methods that silently accepted any request. An authenticated attacker without admin write privileges can issue API credentials, generate unlimited coupons and vouchers, assign arbitrary partner commission and discount rates, alter shop product pricing and limits, reassign server ownership or identifiers, and modify user accounts including roles, credits, passwords, and linked Pterodactyl IDs to achieve full privilege escalation, as well as abuse logBackIn() without the login_as permission to interfere with admin impersonation sessions. This issue has been fixed in version 1.2.0.
📍 영향받는 시스템
CtrlPanel 1.1.1 및 그 이전 버전
⚔️ 공격 벡터
인증된 사용자가 권한 검증이 누락된 API 엔드포인트로 직접 POST/PATCH 요청을 전송
🛡️ 대응 방법
CtrlPanel을 최신 버전인 1.2.0 이상으로 업데이트하십시오.
🔧 검증 코드
설치된 CtrlPanel의 버전이 1.2.0 미만인지 확인하여 취약 여부를 판단합니다.
grep -r "version" /path/to/ctrlpanel/package.json 2>/dev/null || echo 'Check version manually'
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
💻 영향받는 소프트웨어
IBM WebSphere Application Server