Software · OAK-S11 · malware
OAK-S11 — 3CX VoIP Client Trojan
Description
The 3CX VoIP Client Trojan is the malware that propagated in the March 2023 supply-chain compromise of the 3CX Desktop App, a widely-deployed enterprise VoIP / unified-communications client. The trojanized binaries — 3CXDesktopApp.exe on Windows and 3CXDesktopApp Mach-O on macOS — were distributed through 3CX's official update channel between approximately late February and late March 2023, signed with 3CX's legitimate code-signing certificate, and reached an estimated 600,000+ enterprise customer organisations globally before public detection on March 22, 2023. The case is the defining cascading supply-chain compromise of the modern era: 3CX itself was compromised via a separate supply-chain compromise involving Trading Technologies' X_Trader trading-software package (which a 3CX employee had installed on a personal-use basis on a corporate workstation), and Mandiant's April 2023 public report ([mandiantucsx2023] and [mandiant3cx2023]) traced the cascade end-to-end and attributed both legs to the UNC4736 DPRK financial-funding operator within the broader Lazarus cluster.
Infection vector at the 3CX customer layer was the trojanized 3CX Desktop App update, which loaded a malicious DLL (ffmpeg.dll on Windows; equivalent Mach-O components on macOS) using DLL search-order hijacking against the legitimate d3dcompiler_47.dll and ran a multi-stage downloader-and-staging chain that ended in selective deployment of the ICONICSTEALER infostealer to high-value targets. The selective-deployment pattern is operationally important — the trojanized binaries reached hundreds of thousands of organisations but only a small subset received the second-stage payload, indicating operator triage of the victim list with explicit focus on cryptocurrency-industry employees and (per Mandiant) other DPRK-strategic intelligence-collection targets. Post-compromise behavior on triaged targets included credential harvesting, browser-stored cryptocurrency-wallet artifact theft, and (in a small N) hands-on-keyboard intrusion staging.
The case's role in the DPRK financial-funding chain is paradigmatic — the 3CX intrusion demonstrated that DPRK operators are capable of multi-step supply-chain cascade attacks (compromise A enables compromise B enables target-list selection from B's customer base) and that they will invest the operator-tempo cost of such cascades when the downstream victim list contains crypto-industry targets. From a defender perspective the 3CX case is the reference event for thinking about supply-chain-of-supply-chain risk, code-signing certificate trust assumptions, and the vendor-defender boundary at update-channel scale.
Observed examples
- 3CX Desktop App supply-chain compromise (March 2023, ~600K+ customer organisations exposed; small-N actually-extracted). The headline incident itself; SentinelOne and CrowdStrike public detection March 22, 2023; Mandiant retained as 3CX's IR provider; public attribution to UNC4736 / DPRK / Lazarus on April 11, 2023 (
[mandiant3cx2023]). Confirmed-grade attribution at the cluster-and-state-attribution level per Mandiant; per-victim financial outcomes are not consolidated in public reporting because the selective-deployment pattern produced a distributed cohort of small-N extraction events rather than a single concentrated theft. - X_Trader cascading supply-chain compromise (precedes 3CX intrusion). The earlier supply-chain compromise of Trading Technologies' X_Trader trading-software package, which was the entry vector into 3CX itself; Mandiant's
[mandiantucsx2023]documents the cascade and attributes the X_Trader leg to the same UNC4736 DPRK operator. Inferred-strong-to-confirmed attribution per Mandiant. - Cryptocurrency-industry employees of 3CX customer companies. The selective-deployment pattern targeted (per Mandiant and Volexity reporting) cryptocurrency-firm employees in the 3CX customer base; specific named victim firms are not consolidated in public reporting because most affected firms have not publicly disclosed targeted ICONICSTEALER deployments. Attribution of the targeting profile is confirmed at the cohort level.
Detection / attribution signals
- Trojanized-binary indicators —
3CXDesktopApp.exeand3CXDesktopAppbuilds with version strings in the affected ranges (specific version ranges published in 3CX's incident advisory, in CISA CISA's alert, and in CTI-vendor IOC feeds; defenders should consume the live IOC feed rather than transcribe version strings here). The legitimate-code-signing-certificate-trust-bypass aspect is methodologically central — defenders cannot rely on signature validation alone for affected versions because the binaries were signed with 3CX's actual certificate. - DLL-side-loading process-tree fingerprints —
3CXDesktopApp.exeloadingffmpeg.dllfollowed by anomalous network activity to operator-staged GitHub repositories (since taken down) is the canonical Windows-side execution signature; Mach-O equivalents on macOS show similar staging patterns through the trojanized Mach-O components. - C2 and staging infrastructure — multi-stage C2 chain initially staging from GitHub-hosted ICO-format files (an obfuscation choice that hid the second-stage payload in icon-resource sections) before transitioning to operator C2 servers; the ICO-staging pattern is a behavioral fingerprint that defenders should monitor for in DLL-side-loading contexts even outside the specific 3CX case.
- Behavioral signatures from CTI vendors — Mandiant (UNC4736 / 3CX rules), Volexity (independent corroborating attribution and detections), SentinelOne (SmoothOperator detection content; SentinelOne was the first public source on the incident), CrowdStrike (LABYRINTH CHOLLIMA / ICONIC detection content; CrowdStrike was the second public source within hours of SentinelOne), Sophos, Microsoft (Diamond Sleet / Onyx Sleet rules), Kaspersky, ESET.
- CISA alert AA23-XXX cohort — CISA published incident-response guidance for the 3CX compromise; defenders should consume the CISA-published IOCs as the U.S.-government-canonical IOC feed for the case.
- Cross-correlation with DPRK / UNC4736 cluster watchlists — the 3CX case sits within UNC4736's broader operational continuity; the same cluster is attributed to the September 2024 Radiant Capital compromise per Mandiant (
[mandiantradiant2024]), which provides cross-incident attribution corroboration.
Note: omit specific hashes; consume current IOCs from CISA, Mandiant, SentinelOne, CrowdStrike, and 3CX's own incident advisory.
Citations
[mandiant3cx2023]— Mandiant April 2023 public report on the 3CX Desktop App supply-chain compromise; primary attribution anchor to UNC4736 / DPRK / Lazarus.[mandiantucsx2023]— Mandiant report tracing the cascading X_Trader supply-chain compromise that was the entry vector into 3CX; documents the supply-chain-of-supply-chain depth.[mandiantradiant2024]— Mandiant attribution of the September 2024 Radiant Capital compromise to the same UNC4736 cluster; cross-incident continuity evidence.[chainalysis2024dprk]— DPRK-attributed cryptocurrency-theft scale companion citation; the 3CX case contributed to DPRK's 2023 totals via the small-N selective-deployment cohort.
Discussion
On the cascading supply-chain depth. The 3CX case is methodologically defining because it was the first widely-public DPRK supply-chain-of-supply-chain compromise — A (X_Trader) compromise enabled B (3CX) compromise enabled selective targeting of B's customer base. The cascade depth has implications for defender-side trust models that go beyond the 3CX incident itself: any vendor-defender boundary that assumes compromise of the immediate vendor as the worst-case scenario is under-modelling the DPRK operator's demonstrated capability and willingness to operate at multi-vendor cascade depth. This is the case to point to when arguing for code-signing-certificate-trust hardening, software-bill-of-materials enforcement, and reproducible-build verification at vendor-update-channel scale.
On lineage and ecosystem position. The 3CX trojan is not a member of the AppleJeus / TraderTraitor / Manuscrypt families in code-lineage terms — its DLL-side-loading, ICO-staging, and ICONICSTEALER components are distinct from those families' implementations. What connects the 3CX case to the broader DPRK toolset is operator continuity (UNC4736) rather than code lineage. Defenders should therefore not look for "Manuscrypt-style indicators" in 3CX-style supply-chain incidents; the family-level fingerprints differ even when the operator is the same. This is part of why operator-cluster attribution (via wallet-cluster forensics, infrastructure overlap, and tradecraft fingerprinting) outperforms family-level attribution at the cluster boundary.
On attribution caveats. Cluster-level attribution to DPRK / UNC4736 / Lazarus is confirmed per Mandiant's April 2023 public attribution at high confidence and via multi-vendor corroboration (Volexity independent attribution; SentinelOne, CrowdStrike, Microsoft, Kaspersky, ESET concurrence). The U.S. government has not (as of v0.1 cutoff) issued a CISA AA-style joint advisory specifically for the 3CX case at the same naming-and-attribution depth as AA22-108A (TraderTraitor) or AA21-048A (AppleJeus), but the multi-vendor industry consensus and Mandiant's IR-provider position give the case confirmed-grade industry attribution and inferred-strong-to-confirmed government posture.
On the operational profile and selective deployment. The selective-deployment pattern — hundreds of thousands of customer organisations exposed but only a small subset receiving second-stage payload — is itself an attribution-grade signal. State-sponsored operators triage victim lists; commodity supply-chain attackers typically maximise distribution. The 3CX selective-deployment pattern with explicit cryptocurrency-industry-employee targeting is consistent with the DPRK financial-funding mission profile and is one of the indicators that pushed Mandiant to high-confidence DPRK attribution.
On evolution and successor activity. The specific 3CX trojan binaries and infrastructure were burned during the April 2023 public response, but UNC4736 operator continuity persists — the September 2024 Radiant Capital compromise ([mandiantradiant2024]) is attributed to the same cluster. Defenders should treat the 3CX case as sunset for this specific implementation, active for the operator and read forward from the case into ongoing UNC4736-attributed activity rather than treating the cluster as inactive.