
CVE-2026-65891 PoC — Joomla Content Editor file rename vulnerability (auth required, fixed in JCE 2.20.2)
CVE-2026-65891용 개념 증명 스캐너로, Joomla Content Editor (JCE) 확장 프로그램의 취약점을 탐지합니다.
JCE 파일 관리자의 rename(이름 변경) 기능에서의 부적절한 입력 검증으로 인해 파일 관리 권한이 있는 인증된 사용자가 다음을 할 수 있습니다:
.shell.php)승인된 테스트 전용입니다. 소유한 시스템 또는 명시적 테스트 허가를 받은 시스템에서만 사용하세요.
| 필드 | 값 |
|---|---|
| CVE | CVE-2026-65891 |
| 제품 | JCE (com_jce) — Widget Factory Limited |
| 영향받는 버전 | JCE < 2.20.2 (2.20.1 / 2.9.99.9까지) |
| 수정 버전 | JCE 2.20.2+ (2026-07-29) |
| CVSS 3.1 | 6.5 Medium |
| CWE | CWE-20 — 부적절한 입력 검증 |
| 인증 | 필요 — JCE 업로드 및 이름 변경 권한 |
| KEV | 아니요 |
이는 비인증 RCE가 아닙니다. CVE-2026-48907(JCE 프로필 가져오기, 비인증)과 혼동하지 마세요.
JCE browser / imgmanager 이름 변경 핸들러는 거부해야 할 대상 파일명을 허용했습니다:
.로 시작하는 이름 (POSIX에서 숨김)2.20.2에서 수정됨: 이름 변경/복사/이동 시 확장자 검증 및 무단 덮어쓰기 금지.
check (자격 증명 불필요)jce.xml / 에셋에서 JCE 버전 읽기probe / exploit (자격 증명 필요)/administrator/를 통한 로그인 (또는 --frontend-login)plugin.rpc(browser 플러그인)를 통해 마커 .txt 업로드.cve65891_<random>.txt(숨김)로 이름 변경GET /images/.cve65891_*.txt — 마커를 읽을 수 있으면 → EXPLOITEDgit clone https://github.com/YOUR_USER/CVE-2026-65891.git
cd CVE-2026-65891
pip install -r requirements.txt
요구 사항: Python 3.10+
# Version / fingerprint scan (bulk, no auth)
python poc_cve_2026_65891.py -f targets.txt -m check -j 30 -o version_hits.txt
# Single target — full check
python poc_cve_2026_65891.py -u https://joomla.example -m check -v
# Authenticated rename test
python poc_cve_2026_65891.py -u https://joomla.example -m probe \
--user editor --pass 'YourPassword' -v
# Session cookie instead of password
python poc_cve_2026_65891.py -u https://joomla.example -m probe \
--cookie-file cookie.txt -v
EXPLOITED https://joomla.example joomla=True jce=True ver=2.20.1 auth=YES upload=YES rename=YES hidden=YES url=https://joomla.example/images/.cve65891_a1b2c3d4.txt
VULNERABLE https://site.example joomla=True jce=True ver=2.9.99.9 rename=YES err=rename_ok_but_hidden_not_readable
SUSPECT https://old.example joomla=True jce=True ver=2.20.1 err=need_auth_--user_--pass_or_--cookie-file
VULNERABLE 및 EXPLOITED 줄만 -o로 기록됩니다.
테스트 계정에는 다음 권한이 있는 JCE 편집기 프로필이 있어야 합니다:
일반적으로 Editor, Manager 또는 Administrator — 일반 등록 사용자는 안 됩니다.
JCE를 2.20.2 이상으로 업그레이드
Extensions → Manage → Update 또는 joomlacontenteditor.net에서 다운로드
패치 전까지: 신뢰할 수 없는 사용자 그룹(Image Manager, File Browser)의 JCE 프로필 설정에서 **Rename(이름 변경)**을 비활성화합니다.
인증된 다음 요청을 찾으세요:
POST /index.php?option=com_jce&task=plugin.rpc&plugin=browser
method=rename / renameItem 및 .로 시작하는 대상 이름이 포함된 요청을 확인하세요.
JCE 업로드 경로(/images/, /media/) 아래의 예기치 않은 숨김 파일을 찾으세요.
이 도구는 보안 연구, 교육, 그리고 승인된 침투 테스트 전용입니다. 컴퓨터 시스템에 대한 무단 접근은 불법입니다. 저자는 오용에 대한 책임을 지지 않습니다.
MIT — LICENSE 참조.
| 플래그 | 설명 |
|---|
-u, --url | 단일 Joomla 기본 URL |
-f, --file | 대상 목록 (줄마다 하나의 URL) |
-m, --mode | check · probe · exploit · full (기본값: full) |
-j, --threads | 병렬 작업자 수 (기본값: 15) |
-t, --timeout | HTTP 타임아웃(초) (기본값: 25) |
-o, --output | VULNERABLE / EXPLOITED 항목만 기록 |
--user | Joomla 사용자 이름 |
--pass | Joomla 비밀번호 |
--cookie-file | 원시 Cookie: 헤더 파일 (로그인 건너뜀) |
--upload-dir | JCE 업로드 디렉터리 (기본값: images) |
--frontend-login | 관리자 대신 프런트엔드로 로그인 |
-v, --verbose | 디버그 출력 |
| 모드 | 인증 | 설명 |
|---|
check | 아니요 | Joomla + JCE + 버전 |
probe | 예 | 업로드 + 숨김 이름 변경 + 검증 |
exploit | 예 | probe와 동일 |
full | 예* | check 후 probe (*probe는 인증 필요) |