VORANT. Threat Intelligence Research Create a free account

CleanShot X deserialization flaw enables RCE

routine vulnerability Technology

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.

A CleanShot X for macOS flaw lets malicious .cleanshot files achieve code execution when opened, patched in versions up to 4.8.10.

CERT Polska coordinated disclosure of CVE-2026-16477, an insecure deserialization vulnerability (CWE-502) in MTW's CleanShot X screenshot annotation tool for macOS, affecting versions 4.0.0 through 4.5.2. The flaw resides in how the application parses .cleanshot project files, which store editable screenshot annotations; untrusted data embedded in these files is deserialized without proper validation, allowing an attacker-crafted file to execute arbitrary code in the context of the user who opens it.

Exploitation requires social engineering: an attacker must create a malicious .cleanshot file and convince a target to open it in CleanShot X. There is no indication of in-the-wild exploitation or a public proof-of-concept; this was reported directly to CERT Polska and resolved through coordinated disclosure. Users who have never opened .cleanshot files from untrusted sources are not affected.

The vendor has released fixes in versions 4.5.2, 4.6.3, 4.7.8, and 4.8.10. Defenders should ensure CleanShot X installations are updated to one of these patched versions or later, and should treat unsolicited .cleanshot files from external or unknown sources with the same caution as other untrusted document types capable of triggering code execution upon opening.

Mentioned in this report

Vulnerabilities CVE-2026-16477

Detection guidance

CleanShot X Spawning Shell or Scripting Interpreter

ATT&CK T1203

Detects the CleanShot X macOS app spawning a shell, scripting interpreter or download utility, consistent with code execution from a malicious .cleanshot file (CVE-2026-16477 deserialization). 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: CleanShot X Spawning Shell or Scripting Interpreter
description: Detects the CleanShot X macOS application spawning a shell, scripting
  interpreter or download utility. The screenshot tool does not normally launch these,
  so a child like this suggests code execution through insecure deserialization of
  a crafted .cleanshot project file (CVE-2026-16477).
tags:
- attack.execution
- attack.t1203
- attack.t1204.002
logsource:
  category: process_creation
  product: macos
detection:
  selection_parent:
    ParentImage|contains: /CleanShot X.app/Contents/
  selection_child:
    Image|endswith:
    - /sh
    - /bash
    - /zsh
    - /osascript
    - /curl
    - /python
    - /python3
    - /perl
    - /ruby
    - /nscurl
  condition: selection_parent and selection_child
falsepositives:
- Custom CleanShot X post-capture automation or user-configured scripts that call
  a shell
- Application updater or helper routines that invoke curl or sh on some versions
level: high
id: 30cb48ae-91a2-53b5-9ca7-6dd8a92bc977
status: experimental
author: Vorant
references:
- https://cert.pl/en/posts/2026/10/CVE-2026-16477

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

Source reporting: https://cert.pl/en/posts/2026/10/CVE-2026-16477

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 13,967 reports from 143 sources, 524 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 — about forty a week that are yours, not the four hundred that are not.

Create a free account   What it costs