Telecom Blind Spots How Unc3886 Owned Singapores Network Backbone

UNC3886: Inside the Chinese Cyber Espionage Operation That Breached All Four of Singapore's Major Telcos

UNC3886: Inside the Chinese Cyber Espionage Operation That Breached All Four of Singapore's Major Telcos

Executive Summary

On February 9, 2026, Singapore's Cyber Security Agency (CSA) publicly disclosed that UNC3886 — a China-nexus advanced persistent threat group tracked by Mandiant (Google Cloud) since 2022 — had breached all four of the nation's major telecommunications providers: Singtel, StarHub, M1, and SIMBA Telecom. The attackers exploited an undisclosed zero-day vulnerability in a perimeter firewall, deployed kernel-level rootkits across network infrastructure, and exfiltrated a small amount of technical data over an extended period before detection during 2025. Singapore's response — Operation CYBER GUARDIAN — mobilized over 100 cyber defenders from six government agencies across more than 11 months, marking the nation's largest coordinated cyber incident response in history.

This post breaks down the technical details: how UNC3886 operates, what makes their tradecraft uniquely dangerous, and what defenders should be looking for.

Threat Actor Profile

Attribute Detail
Primary Designation UNC3886 (Mandiant / Google Threat Intelligence)
Aliases CAULDRON PANDA (CrowdStrike), Fire Ant (Sygnia)
MITRE ATT&CK ID G1048
Attribution China-nexus state-sponsored cyber espionage
Active Since Late 2021
Target Sectors Telecommunications, Defense, Government, Technology, Aerospace, Energy
Target Regions United States, Asia-Pacific, Europe, Africa, Oceania
Associated Groups UNC5325 (moderate confidence), APT41 (shared tooling)
Specialization Edge device exploitation — firewalls, routers, hypervisors, VPN appliances

What separates UNC3886 from most threat actors is their deliberate avoidance of monitored endpoints. They don't target laptops and servers where EDR agents are watching. Instead, they target the infrastructure between those endpoints — firewalls, routers, hypervisors — devices that process all of an organization's traffic but almost never have endpoint detection software installed. These are the blind spots of enterprise security, and UNC3886 has turned exploiting them into an art form.


Blind Spots
WHERE UNC3886 OPERATES vs. STANDARD MONITORING COVERAGE
UNC3886 target zone — typically outside standard EDR coverage
BLIND SPOT
Firewalls Routers VPN Appliances Hypervisors Management Planes
▼ CVE-2023-20867 — no auth, no logs ▼
Compromised from below — not visible at the OS layer without dedicated monitoring
VIA VMCI
Virtual Machines Database Servers Application Servers
▼
Where most organizations focus their security
EDR / SIEM ACTIVE
Workstations Laptops Email Servers Domain Controllers

The Singapore Incident: What Happened

Date Event
June 2024 Singtel detects and contains a separate breach by Volt Typhoon (malware in "listening mode" on a core router). Later assessed by US intelligence as a "test run" before Salt Typhoon's US telco campaign.
Late 2024 Salt Typhoon breaches 9 US telecommunications companies (Verizon, AT&T, T-Mobile, others), accessing wiretap systems and communications metadata.
Early 2025 Suspicious activity initially detected by telcos and reported to IMDA and CSA. Multi-agency investigation begins. (Exact detection date not publicly disclosed.)
July 18, 2025             Minister K Shanmugam publicly names UNC3886 as targeting Singapore critical infrastructure. Declines to formally attribute to China: "not in Singapore's interest for now."
Early 2025–Jan  2026                   Operation CYBER GUARDIAN launches — 100+ defenders from 6 agencies (CSA, IMDA, CSIT, DIS, GovTech, ISD) investigate and evict UNC3886 across all four telcos. The operation spans more than 11 months.
February 9, 2026 Minister Josephine Teo publicly discloses full scope. CSA and IMDA publish detailed press releases.

Operation CYBER GUARDIAN Stats

OPERATION CYBER GUARDIAN — BY THE NUMBERS
4
telcos breached
6
agencies mobilized
100+
defenders deployed
11+
months duration
6+
zero-days exploited
No customer data stolen · No service disruption · All access points sealed   

Initial Access: The Undisclosed Zero-Day

UNC3886 gained entry through a previously unknown zero-day vulnerability in a perimeter firewall deployed by at least one of the four telcos. Singapore's authorities declined to disclose the CVE or the affected vendor. Minister Josephine Teo described it as "like finding a new key that no one else had found, to unlock the doors to our telcos' information system and networks."

This is consistent with UNC3886's established playbook. The group has historically exploited zero-days in edge devices from Fortinet, VMware, Juniper, and Ivanti — products that sit at network perimeters and rarely have EDR coverage. Once they owned the firewall, they had a foothold outside the reach of standard endpoint monitoring.

Post-Exploitation: Rootkits and Evasion

Once past the perimeter, UNC3886 deployed custom rootkits at the operating system level of compromised network devices. These rootkits rewrote system files, blocked antivirus scans, erased and tampered with logs, and maintained administrator-level access while disabling security features. CSA noted this "made it challenging for cyber defenders to detect the actor's presence, requiring comprehensive security checks."

Objectives and Impact

According to CSA, the attackers exfiltrated a small amount of technical data described as primarily network-related, likely to advance the threat actor's operational objectives. While CSA did not specify exactly what this comprised, network-related technical data from a telecommunications provider could include routing configurations, network topology, or infrastructure design — the kind of intelligence that tells a state actor how a nation's telecommunications backbone is constructed, where its critical nodes are, and how it could be disrupted.

They deliberately avoided customer-facing systems. The operation was focused, disciplined, and restrained — hallmarks of a professional intelligence operation. In one telco, investigators found the attackers had gained limited access to critical systems but had not penetrated deep enough to disrupt services.

Impact Category Assessment
Data Exfiltrated A small amount of technical data, primarily network-related (per CSA/IMDA statement)
Customer Data No personal data accessed or exfiltrated
Service Disruption None — all telecommunications services remained operational
Lateral Movement No evidence of pivot to banking, transport, or healthcare sectors
Communications Interception No evidence of activated espionage against call/message content

The Zero-Day Arsenal

UNC3886 has weaponized at least six zero-day vulnerabilities across multiple vendors. Understanding each one explains how they move through a target environment layer by layer.

CVE Product CVSS Technical Detail
CVE-2022-42475 FortiOS SSL-VPN 9.8 Heap-based buffer overflow enabling unauthenticated remote code execution on FortiGate firewalls. No credentials required.
CVE-2022-41328 FortiOS 7.1 Path traversal in execute wireless-controller hs20-icon upload-icon CLI command. Allows writing arbitrary files (<65KB) to any filesystem path on FortiGate. Exploitation is not logged in FortiGate elogs.
CVE-2023-34048 VMware vCenter Server 9.8 Out-of-bounds write in the vmdird (VMware Directory Service) process via DCE/RPC protocol. Enables unauthenticated remote command execution. Exploited since late 2021 — ~2 years before the October 2023 patch.
CVE-2023-20867 VMware Tools 3.9 Authentication bypass in VMware Tools vgauth module. From a compromised ESXi host, execute commands on any guest VM without authentication and without generating log entries.
CVE-2025-21590 Juniper Junos OS 4.4 Improper isolation in Junos OS kernel. Allows bypassing Veriexec trusted execution via process injection into legitimate binaries.
Undisclosed                                                 Perimeter Firewall                                       ?                       Zero-day used in the Singapore telco campaign. CVE and vendor not publicly disclosed by Singapore authorities.

The CVE-2023-34048 case deserves special attention. UNC3886 exploited this vCenter vulnerability for approximately two years before it was discovered. During that window, any reachable vCenter server was effectively an open door. Mandiant found that in most compromised environments, the attackers had deliberately deleted the vmdird core dump files that would have served as forensic evidence of exploitation, while leaving the surrounding log entries intact — a precise anti-forensics action.

Technical Deep Dive: The Malware Arsenal

UNC3886 has built over 20 custom malware families, each designed for a specific platform. Here's how the key ones work.

Fortinet Platform Implants

CASTLETAP — The group's signature FortiGate backdoor. It installs at /bin/fgfm, mimicking the legitimate FortiGate-to-FortiManager daemon (fgfmd). CASTLETAP creates a raw promiscuous socket to passively sniff all network traffic traversing the firewall. It sits dormant until it detects a specially crafted ICMP packet containing a magic string — a technique known as port knocking. Only then does it activate and establish an SSL-encrypted reverse connection to the C2 server, using acknowledgement token ;7(Zu9YTsA7qQ#vw.

This design is deliberate: because the backdoor generates zero outbound traffic until activated, network monitoring tools see nothing anomalous. The firewall looks completely normal.

TABLEFLIP — A traffic redirection utility deployed on FortiManager devices. FortiManager typically restricts inbound access to TCP port 541 (FortiGate management traffic) via ACLs. TABLEFLIP manipulates routing rules to redirect incoming attacker traffic past these ACLs directly to the REPTILE backdoor's listening port. It effectively punches a hole through the firewall's own access controls.

THINCRUST — A Python-based backdoor targeting FortiManager appliances. It backdoors the FortiManager API, giving the attacker a persistent management-plane foothold that can push configurations and commands to every FortiGate device managed by that instance.

BOLDMOVE — A full-featured C-based backdoor specifically designed for FortiOS. It performs system reconnaissance, provides a remote shell, handles file transfers, and can relay traffic. The Linux variant manipulates FortiOS-specific features. A Windows variant was compiled as early as 2021, indicating long-term development.

VMware Platform Implants

VIRTUALPITA — Delivered through malicious vSphere Installation Bundles (VIBs) — VMware's native plugin format for ESXi. By packaging their backdoor as a VIB, the malware appears as a legitimate VMware extension. It persists in the ESXi host's /bin directory with startup scripts in /etc/rc.local.d/ ensuring it survives reboots. It creates a listener on a hardcoded port, impersonating legitimate VMware service names.

VIRTUALSHINE — This is arguably UNC3886's most innovative implant. It uses VMCI sockets (Virtual Machine Communication Interface) for command-and-control. VMCI is VMware's internal mechanism for communication between the ESXi hypervisor and guest VMs. The critical property: VMCI traffic operates entirely within the bare metal hardware and never touches the network stack. This means:

  • Standard network firewalls do not inspect it
  • Network IDS/IPS does not have visibility into it
  • Standard packet captures will not contain it
  • NetFlow/traffic analysis will not surface it

VIRTUALPIE — Another Python-based backdoor, this one targeting ESXi hosts directly. It provides a lightweight command execution and file transfer capability on the hypervisor itself.

The attacker controls the hypervisor with VIRTUALSHINE and uses VMCI to send commands down into guest VMs through a channel that exists below the operating system's network layer. To the guest VM, it looks like internal VMware communication. To standard network monitoring, it's not visible.


VMCI COMMUNICATION FLOW ATTACKER C2 External infrastructure COMPROMISED ESXi HOST VIRTUALPITA + VIRTUALSHINE HTTPS NETWORK BOUNDARY VMCI SOCKET CHANNEL No network traffic generated — bare metal only Guest VM 1 VIRTUALSHINE agent REPTILE + MEDUSA Guest VM 2 VIRTUALSHINE agent REPTILE + MEDUSA WHY IT MATTERS Standard network monitoring does not have visibility into VMCI traffic. Hypervisor-level monitoring is required to detect this communication channel.

Juniper Router Implants: The Veriexec Bypass

Juniper's Junos OS (built on FreeBSD) includes Veriexec — a kernel-based file integrity system that prevents unauthorized binaries from executing. Disabling Veriexec triggers alerts. UNC3886 found an elegant bypass:


VERIEXEC BYPASS TECHNIQUE — CVE-2025-21590 1 Access router Terminal server + stolen credentials → FreeBSD shell 2 Stage payload Here document → ldb.b64 → decode → ldb.tar.gz → extract binaries 3 Spawn trusted process Execute cat utility — a Veriexec-trusted binary — and suspend it 4 Inject into process memory Write malicious shellcode directly into cat process memory space → trigger execution 5 TINYSHELL active Backdoor runs inside trusted process context. 6 variants deployed as fake daemons. RESULT Shellcode runs inside cat → Veriexec sees trusted process → integrity checks pass Malware executes with full system privileges undetected.


Because cat is a trusted system binary, Veriexec's integrity verification is satisfied. The injected shellcode then executes a position-independent code variant of TINYSHELL. UNC3886 deployed six distinct TINYSHELL variants on Juniper MX routers:

Variant Masquerades As Activation Encryption
appid appidd (App ID Daemon) Active — connects to hardcoded C2 IPs in ORB (Operational Relay Box) network — a mesh of compromised routers and IoT devices used as proxy hops to obscure the true C2 origin Custom binary                            
to top (Table of Processes) Active — separate C2 addresses Custom binary
irad irad (Interface Replication) Passive — dormant until magic ICMP ECHO request Custom binary
lmpad lmpd (Link Mgmt Protocol) PIC variant via Veriexec bypass. Disables logging before operator connection N/A (utility)
jdosd jddosd (DDoS Protection) Passive — UDP port 33512, magic value 0xDEADBEEF RC4
oemd                           oamd (OAM Daemon)                                               Active — TCP-based AES


Note the lmpad variant: it hooks into Juniper management processes to disable logging before the attacker connects and restores logs afterward. The attacker's session leaves no trace in the device's audit trail.

The Rootkit Layer: REPTILE and MEDUSA

Once UNC3886 establishes access, they deploy two complementary rootkits to ensure persistence and credential harvesting:

REPTILE (Kernel-Level) — A Linux Loadable Kernel Module (LKM) rootkit with three components:

  • REPTILE.CMD — User-mode component that manages kernel hooks. Hides files, processes, and network connections by intercepting system calls. Files enclosed with the string #<Centos_Selinux_Config_And_Module> are hidden from all directory listings.
  • REPTILE.SHELL — Reverse shell backdoor activated by magic packets via TCP, UDP, or ICMP port knocking.
  • Kernel Module — The LKM itself, intercepting system calls at the kernel level to cloak all malicious activity.

UNC3886 customized REPTILE deployments with TLS support using the victim's own legitimate TLS certificates and private keys (stolen from compromised FortiGate devices) to encrypt reverse shell traffic. Unique keywords were modified per target to defeat signature-based detection.

MEDUSA (User-Space) — A dynamic linker rootkit using LD_PRELOAD to hijack shared library loading. While REPTILE operates at kernel level, MEDUSA operates in user-space by injecting itself before standard library functions execute:

  • PAM hooking — Intercepts PAM authentication to create hidden persistence
  • Credential logging — Captures passwords from local and SSH logins
  • Command logging — Records all commands executed on the system
  • Process/file/network hiding — Hooks kill(), stat(), readdir(), and getaddrinfo() to conceal malicious artifacts

MEDUSA's SSH credential hijacking placed executables at /usr/sbin/libvird and /usr/bin/NetworkManage (deliberate misspellings of legitimate services). Harvested credentials were XORed with 0xEF and written to /var/log/ldapd<keyword>.2.gz.

C2 Channels: Hiding in Plain Sight

UNC3886's command-and-control infrastructure uses multiple channels designed to blend with legitimate traffic:

Malware C2 Channel Encryption Why It Works
MOPSLED GitHub Pages as dead-drop resolver → custom binary TCP ChaCha20 HTTPS to *.github.io looks like developer activity
RIFLESPINE Google Drive API AES (CryptoPP) Google Drive traffic is ubiquitous in enterprise environments
CASTLETAP ICMP magic packet trigger → SSL reverse connection SSL Zero outbound traffic until activated; looks like nothing
VIRTUALSHINE VMCI sockets (bare metal) N/A Never touches the network — requires hypervisor-level monitoring to detect
TINYSHELL (appid/to) Hardcoded IPs in ORB (Operational Relay Box) network Custom / RC4 / AES ORB network uses compromised routers as proxy hops

How It All Chains Together

Each layer of the attack feeds into the next. The firewall gives them credentials. The credentials give them vCenter. vCenter gives them the hypervisor. The hypervisor gives them every VM — silently. And stolen network credentials give them the routers in parallel.

Attack Chain Flow
ATTACK CHAIN
1
Breach the perimeter
Zero-day in perimeter firewall. Deploy CASTLETAP + REPTILE + TABLEFLIP. The firewall now belongs to the attacker.

2
Harvest credentials
LOOKOVER sniffs TACACS+. MEDUSA hooks SSH/PAM. PITHOOK hijacks SSH servers. Every credential feeds back into the operation.

3
Compromise virtualization
vCenter → ESXi hypervisors → every VM on the host. Deploy VIRTUALPITA via malicious VIBs. Establish VMCI covert channels.

4
Ghost in the VM
CVE-2023-20867: execute on any guest VM without authentication and without generating a single log entry.

5
Own the routers
Bypass Veriexec via process injection into trusted cat binary. Deploy 6 TINYSHELL variants disguised as legitimate daemons.
Clean the VMs — the hypervisor reinfects them. Clean the hypervisor — the firewall lets them back in. Patch the firewall — stolen router credentials provide re-entry. Every layer is a fallback for every other layer.

The Credential Harvesting Pipeline

UNC3886 doesn't just steal credentials — they built an industrialized pipeline that feeds harvested credentials back into the operation at scale:

Tool Protocol Targeted Mechanism Output Location
LOOKOVER TACACS+ libpcap packet capture, MD5+XOR decryption of TACACS+ auth packets /var/lib/libsyslog.so
MEDUSA SSH / Local login LD_PRELOAD hooks PAM + SSH userauth_passwd() /var/log/ldapd*.2.gz (XOR 0xEF)
PITHOOK SSH Custom SSH server (based on wzshiming/sshd) hijacks auth Local credential store
Backdoored tac_plus TACACS+ Replaces legitimate /usr/bin/tac_plus daemon /var/log/tacu*.log
Volatility LSASS / Memory Compiled framework used for hashdump and lsadump Extracted hashes
vCenter DB extraction VMware vpxuser Direct PostgreSQL queries to extract encrypted vpxuser passwords Decrypted for ESXi host access

TACACS+ credentials unlock routers and switches. SSH credentials unlock servers. vpxuser credentials unlock ESXi hosts. Domain hashes unlock Active Directory. Each credential type opens a new layer of the network, and every tool continuously feeds the pipeline.

MITRE ATT&CK Mapping

Tactic Technique UNC3886 Implementation
Initial Access T1190 — Exploit Public-Facing Application Zero-days in FortiGate, vCenter, Ivanti, Juniper edge devices
Execution T1059.006 — Python THINCRUST, VIRTUALPIE Python-based backdoors
Persistence T1014 — Rootkit REPTILE (kernel LKM), MEDUSA (LD_PRELOAD user-space)
Persistence T1505.006 — vSphere Installation Bundles VIRTUALPITA delivered as malicious VIBs on ESXi hosts
Privilege Escalation T1055 — Process Injection Shellcode injection into trusted cat process to bypass Veriexec
Defense Evasion T1562.003 — Impair Command History Logging lmpad disables Juniper logging before operator sessions
Defense Evasion T1205.001 — Port Knocking CASTLETAP and REPTILE activated by magic ICMP packets
Defense Evasion T1036.005 — Match Legitimate Name/Location All TINYSHELL variants masquerade as legitimate Juniper daemons
Credential Access T1040 — Network Sniffing LOOKOVER captures and decrypts TACACS+ authentication traffic
Credential Access T1003.001 — LSASS Memory Compiled Volatility Framework for hashdump / lsadump
Command & Control T1102 — Web Service MOPSLED uses GitHub Pages; RIFLESPINE uses Google Drive
Command & Control T1095 — Non-Application Layer Protocol VMCI sockets for hypervisor-to-VM communication

Detection and Hunting Guidance

Given UNC3886's focus on blind spots, detection requires extending visibility beyond standard endpoint and network tools.

Fortinet Devices

  • Verify firmware integrity against known-good hashes from Fortinet
  • Check for unexpected binaries in /bin/ (especially /bin/fgfm and /bin/klogd)
  • Monitor for raw promiscuous sockets on FortiGate appliances
  • Inspect FortiManager for Python-based API call backdoors
  • Audit iptables/nftables for unexpected traffic redirection rules

VMware Infrastructure

  • Audit all installed VIBs on ESXi hosts against known-good baselines
  • Monitor for anomalous VMCI socket communications between ESXi hosts and guest VMs
  • Check /etc/rc.local.d/ for unauthorized startup scripts on ESXi
  • Monitor vCenter PostgreSQL for unusual database access patterns
  • Watch for unexpected vmdird crashes or missing core dump files
  • Verify VMware Tools version is 12.2.5 or later (patches CVE-2023-20867)

Juniper Routers

  • Verify integrity of running processes against known-good baselines
  • Monitor for unexpected suspended cat processes (Veriexec bypass indicator)
  • Check for Base64-encoded files created via here documents
  • Monitor UDP port 33512 for traffic containing 0xDEADBEEF magic values
  • Watch for ICMP packets with non-standard payloads
  • Audit all terminal server access to network devices

Linux Endpoints and VMs

  • Inspect LD_PRELOAD environment variables system-wide for unexpected shared libraries
  • Monitor for unexpected LKM loads (REPTILE kernel module)
  • Check for executables at /usr/sbin/libvird and /usr/bin/NetworkManage (MEDUSA indicators — note deliberate misspellings)
  • Look for files matching /var/log/ldapd*.2.gz (MEDUSA credential output)
  • Check for /var/lib/libsyslog.so (LOOKOVER credential output)
  • Audit yum-versionlock entries for frozen OpenSSH or suspicious packages
  • Monitor for HTTPS traffic to *.github.io from infrastructure servers (MOPSLED dead-drop)
  • Flag unexpected Google Drive API traffic from non-user-facing systems (RIFLESPINE C2)

The Bigger Picture: Three Groups, One Objective

The Singapore breach is not an isolated incident. It's part of a coordinated Chinese state campaign against global telecommunications infrastructure:

VISUAL: Three Groups Comparison


THREE GROUPS, ONE OBJECTIVE
Volt Typhoon
Pre-positioning
Dormant footholds for future disruption during geopolitical crisis.
Singtel (Jun 2024), US critical infrastructure
Salt Typhoon
Signals intelligence
Active collection from wiretap systems and communications content.
9 US telcos: Verizon, AT&T, T-Mobile, others
UNC3886
Infrastructure access
Deep, persistent, stealthy access to network backbone. 20+ malware families.
All 4 Singapore telcos: Singtel, StarHub, M1, SIMBA
All China-nexus · All targeting telecoms · All active 2024–2026


Three groups. Different tradecraft. Different immediate objectives. But all targeting telecommunications infrastructure, all operating in service of the same state, and all active in the same timeframe. China's intelligence apparatus views global telecommunications infrastructure as a strategic target of the highest priority.

Singapore's Minister Josephine Teo put the stakes bluntly: "If the attack went far enough, it could have allowed the attacker to one day cut off telecoms or internet services." The knock-on effects would cascade into banking, transport, and healthcare.

Key Takeaways

  • Edge devices are the new frontline. Firewalls, routers, hypervisors, and VPN appliances are where nation-state actors operate because these devices often fall outside standard EDR coverage and generate limited telemetry. Extending monitoring to edge infrastructure at the firmware level closes a critical gap.
  • Zero-day stockpiles are real. UNC3886 maintained weaponized zero-days across Fortinet, VMware, Juniper, and Ivanti products simultaneously. CVE-2023-34048 was exploited for two years before discovery. Assume that determined state actors have capabilities you haven't seen yet.
  • Multi-layer persistence defeats single-layer remediation. UNC3886 deliberately maintains parallel access across network devices, hypervisors, and VMs. Cleaning one layer while the others remain compromised accomplishes nothing. Eviction must be simultaneous and comprehensive — which is why Singapore needed 100+ people and more than 11 months.
  • Credential harvesting is industrialized. TACACS+ sniffing, SSH hooking, PAM interception, memory dumping, and database extraction all feed a continuous pipeline that sustains long-term access. Rotating credentials after a breach is essential but insufficient if the harvesting tools remain in place.
  • VMCI is a detection blind spot. Hypervisor-to-VM communication via VMCI sockets is not visible to standard network monitoring. Organizations with VMware environments should add hypervisor-level integrity monitoring alongside network-level detection.
  • The threat is coordinated at state level. Three Chinese groups targeting telecoms globally in the same timeframe — one for pre-positioning, one for signals intelligence, one for infrastructure access — represents a strategic national priority, not individual opportunism.

References