Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2019-15107 PoC — Webmin 命令操作系统命令注入漏洞

Source
Associated Vulnerability
Title:Webmin 命令操作系统命令注入漏洞 (CVE-2019-15107)
Description:An issue was discovered in Webmin <=1.920. The parameter old in password_change.cgi contains a command injection vulnerability.
Description
Webmin-RCE-PoC-CVE-2019-15107 is a Python-based scanner that detects vulnerable Webmin (1.890 - 1.920) servers affected by CVE-2019-15107, an unauthenticated remote code execution (RCE) vulnerability in the /password_change.cgi endpoint.
Readme
# Webmin CVE-2019-15107 Vulnerability Scanner

A multi-threaded Python scanner to detect Webmin servers vulnerable to CVE-2019-15107 (authenticated RCE vulnerability in Webmin versions 1.890 through 1.920).

## Description

This tool scans a list of Webmin servers (provided in CSV format) and checks for the CVE-2019-15107 vulnerability, which allows remote code execution through the password_change.cgi endpoint. The scanner is multi-threaded for efficient scanning of large networks and provides color-coded output for easy result interpretation.

## Features

- Multi-threaded scanning for fast results
- CSV input file support (HOST:IP:PORT format)
- Color-coded terminal output (green/red/yellow for vulnerable/non-vulnerable/errors)
- Real-time scanning statistics
- Automatic saving of vulnerable hosts to `vulnerable_hosts.txt`
- Detailed scan summary report

## Vulnerability Details

**CVE-2019-15107**: An authenticated remote code execution vulnerability in Webmin versions 1.890 through 1.920. The vulnerability exists in the password_change.cgi endpoint, which allows command injection via the `expired` parameter.

## Installation

1. Clone this repository:
   ```bash
   git clone https://github.com/mattb709/CVE-2019-15107-Scanner.git
   cd CVE-2019-15107-Scanner
   ```

2. Install the required dependencies:
   ```bash
   pip install requests colorama
   ```

## Usage

1. Prepare a CSV file (`targets.csv`) with your target hosts in the following format:
   ```
   HOST,IP,PORT
   server1,192.168.1.1,10000
   server2,10.0.0.2,10000
   ```

   (If PORT is empty, default port 10000 will be used)

2. Run the scanner:
   ```bash
   python CVE-2019-15107-Scanner.py targets.csv
   ```

3. For faster scanning with multiple threads (e.g., 10 threads):
   ```bash
   python CVE-2019-15107-Scanner.py targets.csv --threads 10
   ```

## Output Example

```
[*] Starting Webmin CVE-2019-15107 Scanner
[*] Loading targets from: targets.csv
[*] Using 5 threads

[+] VULNERABLE: 192.168.1.1:10000
    Command output: uid=0(root) gid=0(root) groups=0(root)

[-] Not vulnerable: 10.0.0.2:10000
[!] Error: 10.0.0.3:10000 - Connection timeout

=== SCAN SUMMARY ===
Vulnerable hosts: 1
Non-vulnerable hosts: 1
Errors: 1
Total hosts scanned: 3

Vulnerable hosts saved to 'vulnerable_hosts.txt'
```

## Output Files

- `vulnerable_hosts.txt`: Contains all identified vulnerable hosts in IP:PORT format

## Disclaimer

This tool is intended for authorized security testing and research purposes only. The author is not responsible for any misuse or damage caused by this program. Always obtain proper authorization before scanning any systems.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## References

- [CVE-2019-15107](https://nvd.nist.gov/vuln/detail/CVE-2019-15107)
- [Webmin Security Advisory](https://www.webmin.com/security.html)

File Snapshot

[4.0K] /data/pocs/aed6e3d96eab7903042a8bc57a250b63ebe1752f ├── [4.7K] CVE-2019-15107-Scanner.py ├── [1.0K] LICENSE ├── [2.8K] README.md └── [ 33] requirements.txt 0 directories, 4 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →