
CVE-2026-48842용 Python 검사기로, Roundcube Webmail의 virtuser_query 플러그인에서 발생하는 인증 전 SQL 인젝션입니다. 버전, 플러그인 경로를 탐지하고 로그인 프로브를 통해 SQLi를 검증합니다.
Roundcube Webmail(선택적 virtuser_query 플러그인)의 **CVE-2026-48842**에 대한 Python 3 검사기입니다.
이 PoC는 **PoCbit**에 등록되어 있습니다 — pocbit.org의 CVE-2026-48842.
PoC를 실행하면 PoCbit 헤더가 출력되며, JSONL 라인에는 pocbit / pocbit_page가 포함됩니다.
| 제품 | Roundcube Webmail |
| 구성 요소 | 내장 플러그인 virtuser_query (DB 사용자/이메일/호스트 조회) |
| 영향 받는 버전 | 1.6.x < 1.6.16, 1.7.x < 1.7.1 (플러그인이 활성화된 경우 이전 1.4/1.5 계열도 영향을 받을 수 있음 — 배포판별 패치) |
| 수정 버전 | 1.6.16, 1.7.1 |
| CVSS 3.1 | 8.1 High (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| CWE | CWE-89 |
| 인증 | 없음 (로그인 / 조회 경로) |
virtuser_query가 구성된 경우(config.inc.php의 $config['virtuser_query']), 사용자 이름이나 이메일이 **preg_replace('/%u/', $dbh->escape(...), ...)**를 통해 SQL 템플릿에 대입됩니다. PHP는 replacement 문자열의 백슬래시를 해석하여 SQL 이스케이프를 무력화합니다 — 인증 전 SQL 인젝션 (수정: str_replace 사용).
권고문: Roundcube 보안 업데이트 2026-05-24
pip install -r requirements.txt
# Detect Roundcube + version + virtuser plugin file
python poc.py -u https://webmail.example.com --json
# Active SQLi probe (SLEEP / error heuristics on login POST)
python poc.py -u https://webmail.example.com --verify
python poc.py --list targets.example.txt --threads 20 --quiet
python poc.py --list targets.example.txt --verify --sqli-delay 5
virtuser_query가 활성화되어 있어야 합니다 (모든 설치에서 기본 활성화된 것은 아닙니다). PoC는 접근 가능한 경우 플러그인 PHP 경로를 표시합니다.--verify는 조작된 _user 값을 ?_task=login으로 전송합니다 (인젝션 시도에 유효한 비밀번호는 필요하지 않습니다).$config['plugins']에서 virtuser_query를 제거하십시오.body="rcmail" && body="roundcube"
title="Roundcube Webmail"
승인된 테스트에만 사용하십시오.