Webmin build infrastructure inserted backdoor
Webmin's build infrastructure was compromised in 2018, and attackers modified password_change.cgi before official releases were produced.
Story
Webmin's 2019 backdoor was not born in the public Git tree. The project later explained that its development build server had been compromised in April 2018 and that password_change.cgi was modified there. The timestamp was set back, so the poisoned local build file did not appear as a suspicious Git diff.
The first affected release, Webmin 1.890, shipped with a root command execution backdoor that was exploitable in a default install. The vulnerable file was later reverted from GitHub, but in July 2018 the attacker modified it again. This second version reached Webmin 1.900 through 1.920, where exploitation required the expired-password-change feature to be enabled.
The malicious line was short. In the password-change path, attacker-controlled input reached Perl command execution through a qx/.../ expression. Because Webmin commonly runs as root, a remote command reached the operating system with root privileges.
The compromise survived a build-server replacement in September 2018 because the old build directory was restored from backup onto the new host. A public exploit release in August 2019 disclosed the issue. Webmin removed the code, released 1.930, rotated secrets from the old build system, and changed the build process to use checked-in GitHub code instead of a synced local directory.
Affected Artifacts
- Observed
- 2018-07-19 to 2019-08-17
- Fixed
- 1.930
- Hashes
-
- sha256:049286261fbcd846142014f4a7782ab3243b1a7ae816a57468f5d2f8c2199b0c
- md5:7e1d72249a9eec92f9c9dc69dcfbffb3
- Evidence
- distribution: sourceforge.net/projects/webadmin/files/webmin/1.920/webmin-1.920.tar.gz/download, distribution: prdownloads.sourceforge.net/webadmin/webmin-1.890.tar.gz, mirror: webmin.com/exploit.html, mirror: github.com/webmin/webmin/commit/1a1021d869f27e22c36d4b33b50293289faaa914 , +7 more
- Webmin's security page lists CVE-2019-15231 for the default-exploitable 1.890 case, while many exploit and advisory records track the broader 1.890 through 1.920 command-execution issue as CVE-2019-15107.
- The attack date starts with the April 2018 build-server compromise. The artifact date starts with the Webmin 1.890 release.
Incident Context
- Motive
- Unauthorized Access Control
- Attribution
- Person
- Cause
- Compromised Infrastructure
- Transitive
- No
- Actor
- Individual Hacker
External References
- DEFCON Webmin 1.920 Unauthenticated Remote Command Executionpentest.com.tr
- Webmin 1.890 Exploit - What Happenedwebmin.com
- Webmin Security: Remote Command Execution CVE-2019-15231webmin.com
- Backdoor Found in Utility for Linux, Unix Serversthreatpost.com
- Backdoor found in Webmin, a popular web-based utility for managing Unix serverszdnet.com
- NVD: CVE-2019-15107nvd.nist.gov
Source record: oss/attacks/webmin/2019/meta.yaml