🇰🇷 한글 설명
Leantime 프로젝트 관리 시스템의 JSON-RPC 디스패처에서 권한 검증이 누락되어 발생하는 취약점입니다. 인증된 저권한 사용자가 특정 헤더를 포함한 요청을 통해 관리자 계정을 생성하거나 플러그인을 임의로 관리할 수 있습니다.
💡 쉬운 설명
로그인한 일반 사용자가 권한을 넘어서 관리자 권한을 탈취하거나 시스템 설정을 마음대로 바꿀 수 있는 보안 구멍이 발견되었습니다. 이를 통해 공격자는 시스템 전체를 장악할 위험이 있습니다.
🇺🇸 원문 (English)
Leantime is an open source project management system. Prior to 3.10.0, for the provisionally grouped account-creation and plugin-management surfaces, Leantime's JSON-RPC dispatcher in app/Domain/Api/Controllers/Jsonrpc.php exposes public API service methods, while PermissionEnforcer::enforce allows methods that lack a RequiresPermission attribute. A low-privilege authenticated user with an ordinary browser session can send the required X-Requested-With: XMLHttpRequest header and call leantime.rpc.api.api.createApiKeyWithProjects, which reaches Api::createApiKeyWithProjects, with an attacker-chosen role to create an interactive administrator account. The same missing per-method authorization exposes Plugins::installPlugin, Plugins::enablePlugin, Plugins::disablePlugin, and Plugins::removePlugin to ordinary authenticated users, permitting unauthorized plugin management. The complete provisionally grouped issue is fixed in version 3.10.0.
📍 영향받는 시스템
Leantime 3.10.0 미만 버전
⚔️ 공격 벡터
X-Requested-With: XMLHttpRequest 헤더를 포함한 JSON-RPC API 호출을 통한 권한 우회
🛡️ 대응 방법
Leantime를 최신 버전인 3.10.0 이상으로 업데이트하십시오.
🔧 검증 코드
출력 결과에 3.10.0 이상의 버전 정보가 포함되어 있으면 안전합니다.
curl -s http://<target_ip>/version | grep -E '3.10.0'