VORANT. Threat Intelligence Research Create a free account

Movable Type CMS RCE flaw actively exploited

Published Vorant ratinghigh vulnerability Technology

Vorant's rating weighs the evidence in the report: confirmed exploitation, victims claimed, CVSS and EPSS, and how many sources agree. It rates the report, not your assets.

An OS command injection vulnerability in Movable Type's XMLRPC API is being actively exploited in the wild, and initial patches proved incomplete.

Sourceipa.go.jp — open the original

What to check

Applies to
The 1 CVE named below. Whether you run an affected version is not assessed: check the versions the source lists.
Exploitation
A public exploit is recorded for CVE-2021-20837 (templated); no exploitation in the wild is recorded.

IPA (Japan's information security agency) issued an alert regarding a critical OS command injection vulnerability in the XMLRPC API of Six Apart's Movable Type CMS, affecting all versions from 4.0 onward, including end-of-life releases. The flaw allows a remote, unauthenticated attacker to execute arbitrary OS commands on the underlying server, and the derivative product PowerCMS is also affected.

As of November 5, 2021, IPA confirmed active exploitation of this vulnerability in the wild, prompting urgent calls for organizations to apply vendor patches or mitigations immediately. On December 16, 2021, Six Apart disclosed that the fix released on October 20, 2021 was insufficient, requiring further remediation. IPA recommends applying updated patches from the vendor or, where patching is not immediately possible, applying a workaround to the mt-config.cgi configuration file to reduce risk.

Given the CVSS v3 base score of 9.8 (critical) and confirmed real-world exploitation against a widely used CMS platform, affected organizations should prioritize patching or mitigation without delay, particularly given the initial patch's incomplete remediation.

Mentioned in this report

Vulnerabilities CVE-2021-20837templated

Detection guidance

Web Server Process Spawning Shell Interpreter from Movable Type

ATT&CK T1059.001 · status experimental · needs windows process_creation logs · generated from the report, not run against telemetry

A behavioural hunt for the technique in general, not a signature for the CVEs this report names.

Web server process (httpd, apache, nginx) spawning cmd.exe, bash, sh, or perl following a request to mt-xmlrpc.cgi or mt-config.cgi, indicating command execution via the CMS vulnerability. Auto-generated starting point — validate and tune in your environment before deploying. IOC matches can false-positive on shared infrastructure and decay as adversary infrastructure rotates.

title: Web Server Process Spawning Shell Interpreter from Movable Type
description: Detects web server processes (httpd, apache, nginx) spawning shell interpreters
  or script engines immediately after handling requests to Movable Type CGI endpoints,
  consistent with exploitation of the XMLRPC command injection flaw.
tags:
- attack.execution
- attack.t1059.001
logsource:
  category: process_creation
  product: windows
detection:
  selection:
    ParentImage|endswith:
    - \httpd.exe
    - \apache.exe
    - \nginx.exe
    - \apache2.exe
    Image|endswith:
    - \cmd.exe
    - \powershell.exe
    - \perl.exe
  filter_legitimate:
    CommandLine|contains:
    - cgi-bin
    - ScriptAlias
  condition: selection and not filter_legitimate
falsepositives:
- Web server CGI scripts legitimately executing shell commands for site functionality
level: medium
id: 85d0c8dc-d330-5c1c-bd83-c6425b8d22ff
status: experimental
author: Vorant

Suspicious Perl or Python Execution from mt-config.cgi Access

ATT&CK T1059.001 · status experimental · needs linux process_creation logs · generated from the report, not run against telemetry

A behavioural hunt for the technique in general, not a signature for the CVEs this report names.

Perl or Python interpreter spawned by web server process with command-line arguments suggesting OS command execution, correlated with recent HTTP requests to Movable Type CGI files. Auto-generated starting point — validate and tune in your environment before deploying. IOC matches can false-positive on shared infrastructure and decay as adversary infrastructure rotates.

title: Suspicious Perl or Python Execution from mt-config.cgi Access
description: Detects Perl or Python interpreters spawned by web server processes with
  command-line patterns (backticks, system(), exec()) indicative of OS command injection
  exploitation via Movable Type CGI endpoints.
tags:
- attack.execution
- attack.t1059.001
logsource:
  category: process_creation
  product: linux
detection:
  selection:
    ParentImage|contains:
    - httpd
    - apache2
    - nginx
    Image|endswith:
    - /perl
    - /python
    - /python3
  command_execution:
    CommandLine|contains:
    - system
    - exec
    - '`'
    - subprocess
  condition: selection and command_execution
falsepositives:
- Web application scripts legitimately executing system commands as part of normal
  operation
level: medium
id: 3d750052-0557-5b87-bfe9-a0a37e7be4d1
status: experimental
author: Vorant

Behavioural rules are generated from public reporting — validate in your environment before deploying.

Source reporting: https://www.ipa.go.jp/archive/security/security-alert/2021/20211020-jvn.html

Free public brief. The detections with Splunk SPL already written (plus Elastic and KQL where they apply) are in the app with a free account, no card. Slack alerts on the vendors you run come with the paid plans, and a new account gets three days of them.

What this brief leaves out

This page is the free tier: the write-up, the severity, the names. In the app the same report carries its detections (Splunk SPL already written, plus Elastic and Microsoft KQL where they apply) and live profiles of the CVEs it names. The paid plans add the security research and news reporting the free tier leaves out.

It sits in a corpus of 16,433 reports from 149 sources, 661 of them written in the last seven days, and it grows through the day.

A new account starts with three days of all of it, no card, then keeps the government and CERT reporting free. Slack alerts are a paid-plan feature: name the vendors you run and Slack hears about the reports that touch them, not the rest of the week's. Nothing is charged unless you subscribe.

Create a free account   What it costs