Back to Intelligence

Summer 2026 Threat Breakdown: Hugging Face AI Breach, Fairlife Ransomware, and Iranian Water System Attacks — A Defender's Playbook

SA
Security Arsenal Team
September 25, 2026
15 min read

The summer of 2026 was not kind to defenders. As covered in Dark Reading's Reporters' Notebook, three distinct threat events defined the season — and each one maps to a defensive discipline that many organizations still treat as optional: AI/ML supply chain security, ransomware resilience, and operational technology (OT) protection.

The three incidents:

  1. AI agents breaching Hugging Face — the world's largest machine learning model hub was compromised via autonomous AI agents, raising immediate questions about poisoned models, malicious payloads in model artifacts, and the blast radius of trusting third-party ML supply chains.
  2. Fairlife's encryption-based cyber incident — the Coca-Cola-owned dairy producer suffered an encryption-based attack (ransomware-class event), disrupting operations at a critical food and beverage manufacturer.
  3. Iranian-linked threat actors compromising a dozen US water systems — state-affiliated actors continued their campaign against US water and wastewater utilities, compromising operational environments in a sector that remains chronically under-resourced.

None of these are theoretical. All three represent active, ongoing threat patterns that your detection engineering, incident response runbooks, and architecture reviews need to account for right now. This post breaks down each threat from a defender's perspective and provides actionable detection content your SOC can deploy today.

Technical Analysis

Threat 1: AI Agents and the Hugging Face Breach

Hugging Face hosts millions of models, datasets, and Spaces. Organizations pull from it directly into production pipelines — often with minimal inspection. The platform has long supported multiple serialization formats, including pickle-based formats, which are inherently dangerous: loading a pickled model executes arbitrary Python code. A breach of the hub itself, particularly one executed by autonomous AI agents, changes the risk calculus in three ways:

  • Scale and speed: AI agents operate at machine speed. Malicious commits, typosquatted model uploads, and poisoned fine-tunes can propagate faster than human review cycles.
  • Trust erosion: Signed commits and verified organizations lose meaning if the platform's integrity layer is compromised. Every artifact downloaded during the compromise window is suspect.
  • Downstream execution: A poisoned model loaded via transformers, torch.load(), or similar paths executes code with the privileges of the ML pipeline service account — often highly privileged in cloud environments.

Defender's view of the attack chain: malicious artifact uploaded or legitimate artifact modified → artifact pulled by CI/CD or a data science workstation → deserialization triggers code execution → payload establishes persistence or exfiltrates credentials (cloud tokens, API keys) from the environment.

Key observables for your SOC:

  • Python processes loading model files and then spawning unexpected child processes (cmd.exe, powershell.exe, curl, bash)
  • Network connections from data science workstations or ML pipeline hosts to non-standard destinations immediately after model downloads
  • Model artifacts in Hugging Face cache directories (~/.cache/huggingface on Linux, %USERPROFILE%\.cache\huggingface on Windows) that contain executable content

Threat 2: Fairlife's Encryption-Based Incident

The Fairlife incident follows the mature ransomware playbook we've documented across hundreds of engagements: initial access (typically via exposed remote services, phishing, or a purchased access broker foothold), privilege escalation, lateral movement to domain controllers and backup infrastructure, destruction of recovery options, and finally mass encryption. Food and beverage manufacturing is a high-value target because operational downtime translates directly into perishable product loss — extreme pressure to pay.

The encryption phase is almost universally preceded by a consistent set of pre-encryption staging behaviors that are loud and detectable:

  • Shadow copy deletion via vssadmin.exe delete shadows, wmic shadowcopy delete, or bcdedit.exe modifying boot recovery options
  • Backup and recovery tampering: disabling Windows Recovery Environment, clearing backup catalogs, stopping backup agents
  • Mass file modification bursts from a single process across many directories — the encryption itself
  • Renamed files with consistent extensions appended in bulk

If your SOC detects and responds at the shadow copy deletion stage, you can often contain the event before encryption begins. This is where detection engineering pays for itself.

Threat 3: Iranian-Linked Actors and US Water Systems

The compromise of a dozen US water systems by Iranian-linked actors continues a pattern CISA, FBI, NSA, and EPA have warned about repeatedly: nation-state actors targeting small-to-mid-size utilities with internet-exposed operational technology, default credentials, and minimal network segmentation. These actors have historically favored a low-sophistication, high-impact approach — scanning for exposed HMIs, PLCs, and remote access portals, authenticating with default or weak credentials, and manipulating display units or process parameters.

The defining weakness in most of these compromises is not an exotic zero-day. It is architecture:

  • PLCs and HMIs reachable from the public internet
  • OT and IT networks flat or minimally segmented
  • Default or vendor-documented credentials still in production
  • No monitoring on industrial protocols (Modbus/TCP 502, EtherNet/IP 44818, S7comm 102, DNP3 20000)

For defenders, the critical observable is cross-boundary traffic: IT-side hosts initiating connections to OT protocol ports, and any inbound internet path reaching OT assets. These should be near-zero-noise detections in a properly architected environment — which is exactly why they're so valuable.

Detection & Response

Sigma Rules

YAML
---
title: Shadow Copy Deletion Pre-Ransomware Staging
id: 8f3a2b41-6c7d-4e19-a5f2-9d8c1e4b6a30
status: experimental
description: Detects deletion or resizing of Volume Shadow Copies and tampering with boot recovery options — consistent pre-encryption ransomware staging behavior observed in incidents like the Fairlife encryption event.
references:
  - https://attack.mitre.org/techniques/T1490/
author: Security Arsenal
date: 2026/09/15
tags:
  - attack.impact
  - attack.t1490
logsource:
  category: process_creation
  product: windows
detection:
  selection_vssadmin:
    Image|endswith: '\vssadmin.exe'
    CommandLine|contains:
      - 'delete shadows'
      - 'resize shadowstorage'
  selection_wmic:
    Image|endswith:
      - '\wmic.exe'
      - '\WMIC.exe'
    CommandLine|contains: 'shadowcopy'
  selection_bcdedit:
    Image|endswith: '\bcdedit.exe'
    CommandLine|contains:
      - 'recoveryenabled no'
      - 'ignoreallfailures'
  selection_powershell:
    Image|endswith:
      - '\powershell.exe'
      - '\pwsh.exe'
    CommandLine|contains:
      - 'Get-WmiObject Win32_Shadowcopy'
      - 'Remove-WmiObject'
      - 'DeleteObject'
  condition: 1 of selection_*
falsepositives:
  - Legitimate backup software managing shadow copies during maintenance windows
  - IT administrators resizing shadow storage
level: high
---
title: Suspicious Child Process From Python Model Loading
id: 2c7e9d15-4a8b-4f36-b1e9-7d3a5c8f2e41
status: experimental
description: Detects Python interpreters spawning shell or download utility child processes — consistent with code execution during malicious ML model deserialization following a compromised model hub or poisoned artifact.
references:
  - https://attack.mitre.org/techniques/T1059/
  - https://attack.mitre.org/techniques/T1195/
author: Security Arsenal
date: 2026/09/15
tags:
  - attack.execution
  - attack.t1059.006
  - attack.t1195
logsource:
  category: process_creation
  product: windows
detection:
  selection_parent:
    ParentImage|endswith:
      - '\python.exe'
      - '\python3.exe'
      - '\ipython.exe'
      - '\jupyter.exe'
  selection_child:
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\pwsh.exe'
      - '\curl.exe'
      - '\certutil.exe'
      - '\bitsadmin.exe'
      - '\rundll32.exe'
  condition: selection_parent and selection_child
falsepositives:
  - Data science tooling that shells out to system utilities (pip installs invoking curl)
  - Notebook environments running shell magics
level: medium
---
title: Inbound Connection to Industrial Control System Protocol Port
id: 5b1d8f37-9e4c-4a62-c8d3-2f6a9b1e4d57
status: experimental
description: Detects network connections to common ICS/SCADA protocol ports (Modbus, EtherNet/IP, S7comm, DNP3, BACnet) from hosts — high-value detection for water and utility environments where cross-boundary OT traffic should be rare, as exploited in the Iranian-linked water system compromises.
references:
  - https://attack.mitre.org/techniques/T0855/
  - https://attack.mitre.org/techniques/T1190/
author: Security Arsenal
date: 2026/09/15
tags:
  - attack.ics
  - attack.t0855
  - attack.lateral_movement
logsource:
  category: network_connection
  product: windows
detection:
  selection_port:
    DestinationPort:
      - 502
      - 102
      - 44818
      - 20000
      - 47808
  selection_initiated:
    Initiated: 'true'
  filter_engineering:
    Image|endswith:
      - '\studio5000.exe'
      - '\rslogix.exe'
      - '\s7tohttp.exe'
  condition: selection_port and selection_initiated and not filter_engineering
falsepositives:
  - Engineering workstations legitimately programming PLCs (tune the filter list to your environment)
  - OT monitoring platforms polling devices
level: high

Tuning guidance: Rule 3 is the highest-value rule in this set for utilities, but only if you invest in the filter list. Inventory your engineering workstations and authorized OT polling sources before enabling it at high. Rule 2 will fire in legitimate data science shops — scope it to production ML pipeline hosts and workstations that pull from external model hubs rather than every developer laptop.

KQL Hunting (Microsoft Sentinel / Defender)

KQL — Microsoft Sentinel / Defender
// Hunt 1: Pre-ransomware staging — shadow copy deletion and recovery tampering
// Targets the staging behavior common to encryption-based incidents like the Fairlife event
DeviceProcessEvents
| where TimeGenerated > ago(7d)
| where (FileName =~ "vssadmin.exe" and ProcessCommandLine has_any ("delete shadows", "resize shadowstorage"))
    or (FileName =~ "bcdedit.exe" and ProcessCommandLine has_any ("recoveryenabled", "ignoreallfailures"))
    or (FileName =~ "wmic.exe" and ProcessCommandLine has "shadowcopy")
| project TimeGenerated, DeviceName, AccountName, FileName, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessCommandLine, SHA256
| order by TimeGenerated desc;

// Hunt 2: Suspicious child processes from Python — poisoned ML model artifact execution
// Relevant to post-compromise Hugging Face artifact risk on data science and pipeline hosts
DeviceProcessEvents
| where TimeGenerated > ago(7d)
| where InitiatingProcessFileName in~ ("python.exe", "python3.exe", "ipython.exe")
| where FileName in~ ("cmd.exe", "powershell.exe", "pwsh.exe", "curl.exe", "certutil.exe", "bitsadmin.exe", "rundll32.exe")
| project TimeGenerated, DeviceName, AccountName, InitiatingProcessCommandLine, FileName, ProcessCommandLine
| order by TimeGenerated desc;

// Hunt 3: Cross-boundary connections to OT/ICS protocol ports
// For water/utility and manufacturing environments — catches the access path used in the Iranian-linked water system compromises
// Requires Syslog/CEF ingestion of firewall data or Defender for Endpoint network events
DeviceNetworkEvents
| where TimeGenerated > ago(7d)
| where RemotePort in (502, 102, 44818, 20000, 47808)
| where not(RemoteIP startswith "10.10.")  // TODO: replace with your authorized OT management subnet
| summarize ConnectionCount = count(), DistinctTargets = dcount(RemoteIP), TargetIPs = make_set(RemoteIP, 20) by DeviceName, InitiatingProcessFileName, RemotePort
| order by DistinctTargets desc;

Hunt 3 requires you to define your authorized OT management zone. In a properly segmented environment, a workstation in the corporate VLAN touching Modbus port 502 is an incident, not a hunt result — if you get hits, escalate immediately and validate whether the source host is a known engineering station.

Velociraptor VQL

VQL — Velociraptor
-- Hunt for ransomware staging artifacts: shadow copy state, suspicious process
-- execution, and OT protocol connections across the fleet
-- Deploy as a hunt; scope to Windows endpoints and gateway systems

-- Stage 1: Enumerate processes performing shadow copy or boot config tampering
SELECT Pid, Name, Exe, CommandLine, Username, CreateTime
FROM pslist()
WHERE CommandLine =~ '(?i)(delete shadows|resize shadowstorage|shadowcopy delete|recoveryenabled|ignoreallfailures)'

-- Stage 2: Check remaining shadow copies on the endpoint (post-tamper verification)
SELECT * FROM execve(argv=['wmic', 'shadowcopy', 'list', 'brief'])

-- Stage 3: Active connections to ICS protocol ports (OT gateway hunting)
SELECT Pid, Name, Status, Laddr, Raddr
FROM netstat()
WHERE Raddr =~ ':(502|102|44818|20000|47808)$'

Stage 2 gives you the IR team's most important data point after a suspected encryption event: do shadow copies still exist? If a host shows staging behavior in Stage 1 and zero shadow copies in Stage 2, treat it as an active ransomware precursor and isolate the host from the network before encryption begins.

Remediation and Hardening Script

PowerShell
# Summer 2026 Threat Hardening — Run as Administrator
# Covers: ransomware recovery hardening, HF cache audit, OT exposure validation

# 1. Verify Volume Shadow Copy service is running and protected
Write-Host "=== Shadow Copy Service Status ===" -ForegroundColor Cyan
Get-Service VSS | Select-Object Name, Status, StartType
vssadmin list shadows 2>$null | Select-String "Shadow Copy Volume"
if ($LASTEXITCODE -ne 0 -or -not (vssadmin list shadows 2>$null | Select-String "Shadow")) {
    Write-Warning "No shadow copies present or VSS degraded — investigate immediately"
}

# 2. Confirm Windows Recovery Environment is enabled (ransomware often disables it)
Write-Host "=== Recovery Environment Status ===" -ForegroundColor Cyan
reagentc /info

# 3. Audit Hugging Face cache for executable content in model artifacts
#    Pickle-based models can carry embedded payloads — inventory what is cached
Write-Host "=== Hugging Face Cache Audit ===" -ForegroundColor Cyan
$HFCache = "$env:USERPROFILE\.cache\huggingface"
if (Test-Path $HFCache) {
    $suspicious = Get-ChildItem -Path $HFCache -Recurse -Include *.exe,*.dll,*.ps1,*.bat,*.py -ErrorAction SilentlyContinue
    if ($suspicious) {
        Write-Warning "Executable/script content found in model cache — review for poisoned artifacts:"
        $suspicious | Select-Object FullName, Length, LastWriteTime
    } else {
        Write-Host "No executable content in HF cache" -ForegroundColor Green
    }
    # List pickle-format model files for manual review (prefer safetensors)
    Get-ChildItem -Path $HFCache -Recurse -Include *.pkl,*.pickle,*.pt,*.bin -ErrorAction SilentlyContinue |
        Select-Object FullName, Length, LastWriteTime | Format-Table -AutoSize
}

# 4. Verify host firewall is not exposing ICS protocol ports inbound
Write-Host "=== ICS Port Exposure Check ===" -ForegroundColor Cyan
$icsPorts = 502, 102, 44818, 20000, 47808
foreach ($port in $icsPorts) {
    $rule = Get-NetFirewallRule -Direction Inbound -Action Allow -Enabled True -ErrorAction SilentlyContinue |
        Get-NetFirewallPortFilter -ErrorAction SilentlyContinue |
        Where-Object { $_.LocalPort -eq $port }
    if ($rule) { Write-Warning "Inbound ALLOW rule exists on ICS port $port — validate this is intentional" }
}

# 5. Block outbound connections from this host to ICS ports if it has no OT role
#    Uncomment and adapt only for hosts confirmed to have no legitimate OT function
# foreach ($port in $icsPorts) {
#     New-NetFirewallRule -DisplayName "Block Outbound ICS $port" -Direction Outbound `
#         -RemotePort $port -Protocol TCP -Action Block -Enabled True
# }

For Linux-based OT gateways and ML pipeline hosts, the equivalent hardening posture: enforce safetensors-only model loading policies, remove internet reachability from OT VLANs at the firewall (not the host), and alert on any outbound connection from OT segments.

Remediation

For the Hugging Face / AI Supply Chain Threat

  1. Pin and verify model artifacts. Treat models like any other dependency: pin by commit hash, verify checksums against a known-good baseline, and re-validate any artifact downloaded during the compromise window. Contact Hugging Face directly or monitor their security communications at huggingface.co for the official breach scope and affected artifact list.
  2. Mandate safe serialization. Enforce safetensors format across your ML pipelines and block pickle-based loading (torch.load without weights_only=True) in production code paths. This single control eliminates the deserialization-execution primitive.
  3. Isolate ML pipeline identities. Model loading should run under a low-privilege, network-restricted service account. A poisoned model executing with cloud admin credentials is how a hub breach becomes your breach.
  4. Audit what your teams have pulled. Export your artifact download history and cross-reference against the breach disclosure timeline. Anything retrieved during the compromise window gets re-validated or replaced.

For Encryption-Based Incidents (Fairlife-Class Events)

  1. Immutable, offline, tested backups. If your backup infrastructure is domain-joined and reachable from the production network, assume it will be destroyed in the staging phase. Maintain at least one copy that is logically or physically air-gapped, and — critically — test restoration quarterly. An untested backup is a hypothesis.
  2. Alert-to-isolation automation. Wire the shadow copy deletion detections above into automated host isolation (EDR network containment). The window between staging and encryption can be minutes; human-speed response loses that race.
  3. Protect recovery options. Alert on reagentc /disable and bcdedit modifications. Consider tamper protection policies that restrict these binaries to approved admin tooling.
  4. Review your IR retainers and ransomware playbooks now. Food and beverage, agriculture, and manufacturing are actively targeted sectors. If you don't have a practiced, executive-approved decision framework for ransom scenarios, build it before you need it.

For Water and Wastewater Utilities (Iranian-Linked OT Compromises)

  1. Remove all internet-exposed OT assets. Query Shodan/Censys for your public IP space against ports 502, 44818, 102, 20000, and HMI web interfaces. Anything reachable from the internet gets pulled behind a firewall with brokered remote access (jump host + MFA) — this week, not next quarter.
  2. Change every default credential. Vendor-default PLC and HMI passwords are the primary access vector in these campaigns. Audit and rotate all of them, and disable unused vendor accounts.
  3. Segment IT from OT. Deploy a firewall or unidirectional gateway between corporate and control networks. At minimum, deny-by-default inbound to OT segments and log all permitted flows.
  4. Leverage federal resources. CISA offers free vulnerability scanning and architecture reviews to water utilities, and EPA provides sector-specific guidance — see cisa.gov/topics/industrial-control-systems and the Water and Wastewater Systems sector resources at cisa.gov/water. Report suspected compromise to CISA's 24/7 operations center and your FBI field office; given the nation-state attribution, these incidents carry federal reporting implications.
  5. Deploy passive OT monitoring. You cannot protect protocol traffic you cannot see. Even a span-port-fed Zeek or Defender for IoT sensor on the OT switch would have surfaced the cross-boundary access these actors relied on.

Cross-Cutting Actions for All Three Threats

  • Update your threat model to include AI agents. Autonomous agents are now both attack tools (as in the Hugging Face breach) and potential attack surface if you deploy them internally with tool access. Govern agent permissions the way you govern service accounts: least privilege, scoped credentials, full audit logging.
  • Tabletop all three scenarios this quarter. A poisoned model in your pipeline, an encryption event, and an OT intrusion exercise — each stresses different escalation paths, and the organizations that survive these events are the ones that have rehearsed them.
  • Monitor CISA KEV for any vulnerabilities added in connection with these campaigns, and subscribe to sector ISAC feeds (WaterISAC, Food and Ag-ISAC) for actor TTP updates.

The through-line of the summer of 2026 is not sophistication — it is exposure. A trusted platform breached at machine speed, a manufacturer encrypted through a well-worn playbook, and utilities compromised through default credentials and open ports. None of these required a zero-day. All of them were detectable and, in most environments, preventable. That is the uncomfortable but actionable truth for defenders heading into fall.

Related Resources

Security Arsenal Incident Response Services AlertMonitor Platform Book a SOC Assessment incident-response Intel Hub

Is your security operations ready?

Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.