# Rockwell Automation FactoryTalk Optix MQTT RCE flaw

Published: 2025-09-09 · Severity: routine · Sectors: manufacturing
Canonical: https://vorant.io/reports/6ecee4a8-5c21-5fe8-af41-50f44a8ab4e7/rockwell-automation-factorytalk-optix-mqtt-rce-flaw

> Improper input validation in FactoryTalk Optix MQTT broker enables remote code execution; update to version 1.6.0 or later.

Rockwell Automation has disclosed CVE-2025-9161, a critical remote code execution vulnerability in FactoryTalk Optix versions 1.5.0 through 1.5.7. The flaw exists in the MQTT broker component due to insufficient URI sanitization, which allows an attacker to load remote Mosquitto plugins and achieve remote code execution. The vulnerability requires authentication, user interaction, and has high attack complexity, reducing its immediate exploitation risk; however, it affects a widely-deployed industrial visualization platform used across critical manufacturing globally.

Rockwell Automation has released patched version 1.6.0 to remediate the issue. CISA reports no active public exploitation at this time. Affected organizations should prioritize upgrading to the patched version or, if unable to do so immediately, implement network segmentation and access controls to isolate FactoryTalk Optix systems from the internet and untrusted networks. Standard ICS security practices—placing systems behind firewalls, using VPNs for remote access, and minimizing network exposure—should be applied.

## Mentioned in this report

- Vulnerabilities: CVE-2025-9161

## Detection guidance (public sample)

### FactoryTalk Optix or Mosquitto Broker Spawning Shell or LOLBin

ATT&CK: T1190

FactoryTalk Optix runtime or a Mosquitto MQTT broker process spawning a command interpreter or download/exec utility, consistent with post-exploitation RCE via a malicious Mosquitto plugin (CVE-2025-9161). 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.

```yaml
title: FactoryTalk Optix or Mosquitto Broker Spawning Shell or LOLBin
description: Detects the FactoryTalk Optix runtime or a Mosquitto MQTT broker spawning
  a command interpreter or common download/execute utility. This is a plausible post-exploitation
  artefact of CVE-2025-9161, where a remote Mosquitto plugin is loaded and gives code
  execution in the broker context. Neither process normally spawns these children.
tags:
- attack.initial-access
- attack.t1190
- attack.execution
- attack.t1203
logsource:
  category: process_creation
  product: windows
detection:
  selection_parent:
  - ParentImage|contains: FTOptix
  - ParentImage|endswith: \mosquitto.exe
  selection_child:
    Image|endswith:
    - \cmd.exe
    - \powershell.exe
    - \pwsh.exe
    - \wscript.exe
    - \cscript.exe
    - \mshta.exe
    - \rundll32.exe
    - \regsvr32.exe
    - \certutil.exe
    - \bitsadmin.exe
    - \curl.exe
  condition: selection_parent and selection_child
falsepositives:
- Administrators or project scripts that deliberately launch cmd.exe or PowerShell
  from an Optix application for maintenance
- Service wrapper scripts that start or restart the Mosquitto broker through cmd.exe
level: medium
id: 4782839c-c273-5955-a685-ec363f315d76
status: experimental
author: Vorant
references:
- https://www.cisa.gov/news-events/ics-advisories/icsa-25-252-04
```

### Mosquitto Broker Loading Plugin DLL From Non-Standard Location

ATT&CK: T1203

mosquitto.exe loading a DLL from a user-writable directory or a UNC/remote path, consistent with loading a remote or attacker-supplied Mosquitto plugin as in CVE-2025-9161. 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.

```yaml
title: Mosquitto Broker Loading Plugin DLL From Non-Standard Location
description: Detects mosquitto.exe loading a module from a temp or user-writable directory
  or from a UNC path. CVE-2025-9161 abuses insufficient URI sanitization in the FactoryTalk
  Optix MQTT broker to load remote Mosquitto plugins. Legitimate plugins are normally
  loaded from the install directory.
tags:
- attack.execution
- attack.t1203
- attack.initial-access
- attack.t1190
logsource:
  category: image_load
  product: windows
detection:
  selection:
    Image|endswith: \mosquitto.exe
  selection_location:
  - ImageLoaded|startswith: \\
  - ImageLoaded|contains:
    - \AppData\
    - \Temp\
    - \Users\Public\
    - \ProgramData\
  condition: selection and selection_location
falsepositives:
- Custom Mosquitto plugins deliberately deployed under ProgramData by the platform
  administrator
- Test or development brokers loading plugins from a user profile directory
level: medium
id: 60b72580-4f6c-5715-9610-621adf3214d5
status: experimental
author: Vorant
references:
- https://www.cisa.gov/news-events/ics-advisories/icsa-25-252-04
```

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

Source reporting: https://www.cisa.gov/news-events/ics-advisories/icsa-25-252-04

---

This is the free public brief from Vorant Threat Intelligence. When citing, attribute "Vorant" and link https://vorant.io/reports/6ecee4a8-5c21-5fe8-af41-50f44a8ab4e7/rockwell-automation-factorytalk-optix-mqtt-rce-flaw.
In the app the same report carries its extracted indicators, its detections (Splunk SPL already written, plus Elastic and Microsoft KQL where they apply), live profiles of the actors and CVEs it names, and the vendor research on the same campaign. Slack alerts fire on the vendors, sectors and countries a reader follows. A new account starts with three days of all of it, no card: https://vorant.io/signup
