Cyber Resilience

CVE-2026-27180

Mjdm Majordomo

Public PoC
Published
18 February 2026
Modified
20 February 2026
CVSS Score v4 9.3
Click a component to see what it means
Raw vectorCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS Score 0.011 62th percentile
Risk Priority 70 floored blend · peak EPSS

Summary

CVE-2026-27180 is a critical-severity Download of Code Without Integrity Check (CWE-494) vulnerability in Mjdm Majordomo. Its CVSS base score is 9.3 (Critical).

Operationally, exploitation aligns with the MITRE ATT&CK technique Supply Chain Compromise (T1195); ranked in the top 38% of CVEs by exploit likelihood; it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.

The strongest mitigations our analysis identified map to CM-14 (Signed Components) and SI-7 (Software, Firmware, and Information Integrity) — see the control section below for these in your framework.

Deeper analysis AI-assisted summary

Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.

CVE-2026-27180 is a critical unauthenticated remote code execution vulnerability in MajorDoMo (also known as Major Domestic Module), an open-source home automation platform. The issue stems from the saverestore module, which exposes its admin() method via the /objects/?module=saverestore endpoint without authentication. This occurs because the module reads the mode parameter directly from $_REQUEST using gr('mode') rather than the framework's $this->mode. Additionally, the auto_update_settings mode handler allows poisoning of the system update URL, enabling supply chain compromise. The vulnerability carries a CVSS v3.1 base score of 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) and is associated with CWE-494 (Download of Code Without Integrity Check). It was published on 2026-02-18.

An unauthenticated remote attacker can exploit this vulnerability with just two GET requests. First, the attacker poisons the update URL through the auto_update_settings handler. Second, they trigger the force_update handler, which calls autoUpdateSystem(). This method fetches an Atom feed from the attacker-controlled URL with only trivial validation, downloads a tarball using curl with TLS verification disabled (CURLOPT_SSL_VERIFYPEER set to FALSE), extracts it via exec('tar xzvf ...'), and copies all files to the document root using copyTree(). Successful exploitation allows deployment of arbitrary PHP files, such as webshells, granting full control over the affected MajorDoMo instance.

Advisories and patches for mitigation are detailed in referenced sources, including a GitHub pull request at https://github.com/sergejey/majordomo/pull/1177, a technical analysis at https://chocapikk.com/posts/2026/majordomo-revisited/, and a VulnCheck advisory at https://www.vulncheck.com/advisories/majordomo-supply-chain-remote-code-execution-via-update-url-poisoning. Security practitioners should review these for specific remediation steps, such as patching the saverestore module and securing update mechanisms.

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

MajorDoMo (aka Major Domestic Module) is vulnerable to unauthenticated remote code execution through supply chain compromise via update URL poisoning. The saverestore module exposes its admin() method through the /objects/?module=saverestore endpoint without authentication because it uses gr('mode') (which reads directly…

more

from $_REQUEST) instead of the framework's $this->mode. An attacker can poison the system update URL via the auto_update_settings mode handler, then trigger the force_update handler to initiate the update chain. The autoUpdateSystem() method fetches an Atom feed from the attacker-controlled URL with trivial validation, downloads a tarball via curl with TLS verification disabled (CURLOPT_SSL_VERIFYPEER set to FALSE), extracts it using exec('tar xzvf ...'), and copies all extracted files to the document root using copyTree(). This allows an attacker to deploy arbitrary PHP files, including webshells, to the webroot with two GET requests.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1195 Supply Chain Compromise Initial Access
Adversaries may manipulate products or product delivery mechanisms prior to receipt by a final consumer for the purpose of data or system compromise.
T1072 Software Deployment Tools Execution
Adversaries may gain access to and use centralized software suites installed within an enterprise to execute commands and move laterally through the network.
T1195.001 Compromise Software Dependencies and Development Tools Initial Access
Adversaries may manipulate software dependencies and development tools prior to receipt by a final consumer for the purpose of data or system compromise.
T1195.002 Compromise Software Supply Chain Initial Access
Adversaries may manipulate application software prior to receipt by a final consumer for the purpose of data or system compromise.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2026-27175Same product: Mjdm Majordomo
CVE-2026-27174Same product: Mjdm Majordomo
CVE-2026-27181Same product: Mjdm Majordomo
CVE-2026-27176Same product: Mjdm Majordomo
CVE-2026-27177Same product: Mjdm Majordomo
CVE-2026-27178Same product: Mjdm Majordomo
CVE-2026-27179Same product: Mjdm Majordomo
CVE-2023-50917Same product: Mjdm Majordomo
CVE-2024-28850Shared CWE-494
CVE-2025-69263Shared CWE-494

Affected Assets

mjdm
majordomo
all versions

Mitigating Controls

Control response

Prevent
Stop it (NIST 800-53)

Detect
Catch it (NIST detect / respond)

Harden
Shrink the surface (DISA STIG)
  • 9 hardening rules · 5 OS baselines
Validate
Prove the fix (OWASP ASVS)

Mitigating Controls (NIST 800-53 r5) AI

Requires digital signature verification before component installation, directly stopping execution of code downloaded without integrity checks.

Employs integrity verification tools that can identify missing or failed checks on downloaded software after the fact.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

ID.RA-09 full match
prevents

Directly requires assessing authenticity/integrity of software before acquisition and use, preventing unverified downloads.

PR.DS-02 mostly match
prevents

Requires cryptographic integrity protections (signatures/hashes) for data-in-transit, covering downloaded code.

PR.PS-05 mostly match
prevents

Prevents execution of unauthorized software, blocking the outcome of an unchecked download.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

prevents

Mandating integrity checks, digital signatures, and origin tracing for ICT components directly reduces the chance that code or firmware lacking an integrity check will be accepted into the organisation’s environment.

none

Requiring suppliers to disclose vulnerabilities and mandating verified updates lowers the chance that code lacking integrity checks will be deployed.

Hardening callouts derived

Configuration rules from DISA STIG baselines that bear on weaknesses of the type cited by this CVE. Each rule is shown with the relationship its mapping actually records, against the CWE it was authored against. Derived via CVE→CWE over `controls_xwalks` (authoritative rows only; rows rated `none` are excluded).

Oracle Linux 8 (1 rule)
  • V-248575 OL 8 must prevent the installation of software, patches, service packs, device drivers, or operating system components of local packages without verification they have been digitally signed using a certificate that is issued by a Certificate Authority (CA) that is recognized and approved by the organization. prevents CWE-494
Oracle Linux 9 (1 rule)
  • V-271524 OL 9 must check the GPG signature of software packages originating from external software repositories before installation. prevents CWE-494
RHEL 7 (2 rules)
  • V-204447 The Red Hat Enterprise Linux operating system must prevent the installation of software, patches, service packs, device drivers, or operating system components from a repository without verification they have been digitally signed using a certificate that is issued by a Certificate Authority (CA) that is recognized and approved by the organization. prevents CWE-494
  • V-204448 The Red Hat Enterprise Linux operating system must prevent the installation of software, patches, service packs, device drivers, or operating system components of local packages without verification they have been digitally signed using a certificate that is issued by a Certificate Authority (CA) that is recognized and approved by the organization. prevents CWE-494
RHEL 8 (1 rule)
  • V-230264 RHEL 8 must prevent the installation of software, patches, service packs, device drivers, or operating system components from a repository without verification they have been digitally signed using a certificate that is issued by a Certificate Authority (CA) that is recognized and approved by the organization. prevents CWE-494
RHEL 9 (1 rule)
  • V-257820 RHEL 9 must check the GPG signature of software packages originating from external software repositories before installation. prevents CWE-494

References