1. Executive summary
JADEPUFFER, an actor attributed by Sysdig to an autonomous LLM-driven AI agent (no MITRE ATT&CK profile exists for this actor; attribution is unconfirmed), has deployed a new compiled Go ransomware dubbed ENCFORGE in a second observed attack against a Langflow server. The initial access vector is unchanged: CVE-2025-3248 (CVSS 9.8, Critical), an unauthenticated remote code execution flaw in Langflow versions prior to 1.3.0 via the /api/v1/validate/code endpoint, which has been listed in CISA's Known Exploited Vulnerabilities (KEV) catalogue since 5 May 2025. ENCFORGE is purpose-built to encrypt AI infrastructure assets — model weights, vector indexes, training datasets, and checkpoints — using AES-256-CTR with RSA-2048 key wrapping, and represents a shift from the improvised Python/MySQL encryption seen in JADEPUFFER's first campaign to compiled, reusable tooling. EMEA financial services running Langflow in AI/ML pipelines face direct risk of production model data loss if the vulnerable endpoint remains exposed.
2. Regulatory framing
| Article | Trigger (the fact in this item) | Practical impact |
|---|---|---|
| DORA Art. 19: reporting of major ICT-related incidents to competent authorities | Ransomware encryption of AI model files and training datasets constitutes a major ICT-related incident if availability of critical AI-dependent services is impacted. | Clients must classify this incident under DORA Art. 18 and assess whether the impact threshold for major-incident reporting to competent authorities is met. |
| DORA Art. 24: digital operational resilience testing — general requirements | The exploited CVE-2025-3248 has been in CISA KEV since May 2025; the vulnerable Langflow endpoint remained unpatched and externally exposed. | Clients must verify that ICT resilience testing programmes include KEV-listed vulnerability scanning against AI/ML infrastructure components, not just traditional estate. |
| NIS2 Art. 21(2)(d): supply chain security measures | Langflow is a third-party open-source component in the AI/ML supply chain; the flaw is in a dependency, not in-house code. | Clients must extend supply-chain security measures to cover open-source AI orchestration tools, including version tracking and patch enforcement for components like Langflow. |
3. Technical analysis & attack chain
Confirmed attack chain (single-sourced to Sysdig research; verify before enforcement)
- Initial access — CVE-2025-3248 exploitation. The attacker sent an unauthenticated request to the
/api/v1/validate/codeendpoint on a Langflow server running a version prior to 1.3.0. This endpoint exposes arbitrary Python code execution on the server without authentication. The flaw carries a CVSS score of 9.8 (Critical) and has been in CISA's KEV catalogue since 5 May 2025. - Credential sweep and Docker socket discovery. After confirming code execution, JADEPUFFER swept the container for credentials and located the Docker socket at
/var/run/docker.sock, providing a path to host-level access and container manipulation. - C2 retrieval attempt and adaptation. The first attempt to pull the ENCFORGE binary from a GCP-based command-and-control server failed. The operator adapted and retried — behaviour Sysdig attributes to the agentic (LLM-driven) nature of the actor, though this attribution is unconfirmed (no MITRE ATT&CK profile exists for JADEPUFFER).
- ENCFORGE deployment. The ransomware binary was retrieved from the C2 server, where it was hidden as
/.lockd(a direct request to/lockdreturns 404; the leading dot conceals it from plain directory listings). - File encryption across AI infrastructure. ENCFORGE encrypted targeted file types across the host filesystem using AES-256-CTR for file data, with the per-run symmetric key wrapped under an embedded RSA-2048 public key. Rather than encrypting whole files, it encrypts selected regions — a speed optimisation comparable to LockBit and BlackCat-class lockers. Each processed file is renamed with a
.lockedextension. - Process killing and ransom note deployment. The binary kills processes holding target files open before encrypting, handles restarts without re-encrypting completed files, and drops ransom notes named
README,HOW_TO_DECRYPT, andREADME_DECRYPT. The binary deletes itself after running.
ENCFORGE binary technical details
- Format: UPX 5.20-packed static Go 1.22.12 ELF binary.
- Internal project name:
encfile - Companion tool referenced in error text:
keyforge - Detection anchors: The strings
encfileandkeyforgesurvive recompilation of the same codebase and serve as stable detection signatures. - Threat intelligence detections: Zero detections on both packed and unpacked hashes at time of Sysdig's analysis.
- Targeted file extensions (approximately 180 total): PyTorch checkpoints, TensorFlow checkpoints, Hugging Face SafeTensors, ONNX interchange format, GGUF (current standard for locally deployed LLMs), GGML (predecessor format), FAISS vector indexes, Parquet datasets, Arrow datasets, NumPy arrays, and TensorFlow records. An
--includeflag allows the operator to append additional file globs; built-in help text cites LoRA fine-tuning adapters and legacy GGML weights as examples. - Encryption: AES-256-CTR for file data; per-run symmetric key wrapped under embedded RSA-2048 public key. Selective region encryption, not full-file.
- Exfiltration capability: None. The binary carries no networking code, cloud storage client, or staging mechanism. No evidence of data exfiltration, leak site, or Tor payment portal was found. Leverage is purely encrypted-data denial.
- Extortion contact:
e78393397@proton.me— the same Proton Mail address used in JADEPUFFER's prior campaign. Sysdig describes this as the strongest attribution link between the two operations.
Prior campaign context (for correlation): JADEPUFFER's earlier operation used throwaway Python code and MySQL's AES_ENCRYPT() function to encrypt and destroy data in Nacos (Alibaba's configuration server) and production databases. ENCFORGE replaces those improvised scripts with compiled tooling targeting the model stores, vector databases, and training pipelines that the first campaign swept for credentials.
Confidence caveat: All technical detail above is single-sourced to Sysdig's research, as reported by The Hacker News and BleepingComputer. Sysdig disclosed one observed session, did not name the victim organisation, and provided no victim count or evidence of additional ENCFORGE deployments. Verify before enforcement.
4. Mitigation & containment
P1 — Within 24 hours
- Patch Langflow immediately. Upgrade to version 1.3.0 or later, which remediates CVE-2025-3248. This is the single highest-priority action. If patching is not immediately possible, proceed to the network containment steps below.
- Block external access to
/api/v1/validate/code. If the Langflow instance must remain internet-facing, apply a WAF rule or reverse proxy ACL to deny all requests to this endpoint. The endpoint should never be reachable without authentication. - Restrict Docker socket access. Ensure
/var/run/docker.sockis not mounted or accessible inside Langflow containers. If the socket must be available, enforce read-only mount and AppArmor/SELinux profiles that denydocker execanddocker runfrom the Langflow process. - Hunt for ENCFORGE artefacts. Search all hosts in the AI/ML estate for files named
/.lockd,README,HOW_TO_DECRYPT,README_DECRYPT, and any files with a.lockedextension. Search binary strings forencfileandkeyforge.
P2 — Within 72 hours
- Isolate and preserve. If an ENCFORGE infection is confirmed, isolate the affected host immediately. Preserve the binary for forensic analysis before any remediation — the self-deleting behaviour means the artefact will not survive a reboot or cleanup.
- Audit AI infrastructure file stores. Check model registries, vector database directories, training data pipelines, and checkpoint storage for
.lockedfiles or ransom notes. ENCFORGE targets approximately 180 extensions across PyTorch, TensorFlow, Hugging Face, ONNX, GGUF, GGML, FAISS, Parquet, Arrow, NumPy, and TFRecord formats. - Block the C2 and extortion infrastructure. Block the email address
e78393397@proton.mein mail gateways. Investigate GCP egress from the environment associated with the C2 server identified by Sysdig (specific IP/hostname not provided in source material — obtain from Sysdig report if available). - Deploy EDR/YARA detection. Deploy the YARA rule in §6 to all endpoints hosting AI/ML workloads. Configure EDR to alert on Go ELF binaries matching the
encfile/keyforgestring anchors.
P3 — Within 7 days
- Network-segment AI/ML infrastructure. Place Langflow and other AI orchestration tools on isolated network segments with strict egress filtering. AI model stores, vector databases, and training pipelines should not share filesystems with orchestration layers.
- Enforce KEV-driven patch SLAs. CVE-2025-3248 has been in CISA KEV since May 2025 — over a year before this observed exploitation. Review patch management processes to ensure KEV-listed vulnerabilities in AI/ML tooling are remediated within 30 days of KEV addition.
- Review container hardening. Ensure all AI/ML containers run with dropped capabilities, no Docker socket mount, read-only filesystems where feasible, and seccomp/AppArmor profiles.
5. Indicators of compromise
| Type | Value | Confidence | Source |
|---|---|---|---|
| e78393397[.]proton[.]me | High | Sysdig via The Hacker News | |
| File path | /.lockd | High | Sysdig via The Hacker News |
| File path | /lockd (returns 404) | Medium | Sysdig via The Hacker News |
| File name | README | Medium | Sysdig via The Hacker News |
| File name | HOW_TO_DECRYPT | Medium | Sysdig via The Hacker News |
| File name | README_DECRYPT | Medium | Sysdig via The Hacker News |
| File extension | .locked | High | Sysdig via The Hacker News |
| Binary string | encfile | High | Sysdig via The Hacker News |
| Binary string | keyforge | High | Sysdig via The Hacker News |
| Binary characteristic | UPX 5.20-packed static Go 1.22.12 ELF | High | Sysdig via The Hacker News |
email e78393397[.]proton[.]me
filepath /.lockd
filepath /lockd
filename README
filename HOW_TO_DECRYPT
filename README_DECRYPT
fileext .locked
binstring encfile
binstring keyforge
Behavioural indicators
| Behaviour | Where to observe | Confidence |
|---|---|---|
Unauthenticated POST to /api/v1/validate/code on Langflow |
Web server access logs, WAF logs | High |
Process killing prior to file encryption (files released then renamed .locked) |
EDR process telemetry, filesystem monitoring | Medium |
| Self-deletion of binary after execution | EDR file deletion telemetry | Medium |
Access to /var/run/docker.sock from Langflow container process |
Container runtime logs, EDR | High |
6. Detection
rule ENCFORGE_Ransomware {
meta:
author = "Adverse Trace"
date = "2026-07-21"
reference = "https://thehackernews.com/2026/07/new-encforge-ransomware-targets-ai.html"
description = "Detects ENCFORGE Go ransomware binary by stable internal project name and companion tool reference"
strings:
$proj_name = "encfile" ascii
$keygen = "keyforge" ascii
$ransom_note_1 = "HOW_TO_DECRYPT" ascii
$ransom_note_2 = "README_DECRYPT" ascii
$ext_locked = ".locked" ascii
condition:
uint16(0) == 0x457f and
($proj_name and $keygen) and
1 of ($ransom_note_1, $ransom_note_2, $ext_locked)
}
title: Langflow CVE-2025-3248 Unauthenticated Code Execution via validate/code
id: 7a3c1f2e-4b5d-4a8e-9c1f-6d2b3a4e5f6a
status: experimental
description: Detects unauthenticated requests to the Langflow /api/v1/validate/code endpoint, indicating potential CVE-2025-3248 exploitation
author: Adverse Trace
date: 2026/07/21
references:
- https://thehackernews.com/2026/07/new-encforge-ransomware-targets-ai.html
logsource:
category: webserver
product: nginx
service: access
detection:
selection:
uri|contains: "/api/v1/validate/code"
method: POST
filter:
status: 401
condition: selection and not filter
falsepositives:
- Legitimate authenticated code validation requests (should not appear unauthenticated)
level: critical
title: ENCFORGE Ransomware File Encryption Behaviour
id: 8b4d2g3f-5c6e-4b9f-0d2g-7e3c4b5f6a7b
status: experimental
description: Detects file renaming to .locked extension and creation of ransom notes consistent with ENCFORGE activity
author: Adverse Trace
date: 2026/07/21
references:
- https://thehackernews.com/2026/07/new-encforge-ransomware-targets-ai.html
logsource:
category: file_event
product: sysmon
detection:
selection_locked:
TargetFilename|endswith: ".locked"
selection_ransom:
TargetFilename|endswith:
- "HOW_TO_DECRYPT"
- "README_DECRYPT"
condition: selection_locked or selection_ransom
falsepositives:
- Unlikely in production AI/ML environments
level: critical
7. Sources
- The Hacker News — "New ENCFORGE Ransomware Targets AI Model Files in Langflow RCE Attack" — https://thehackernews.com/2026/07/new-encforge-ransomware-targets-ai.html — 2026-07-21
- BleepingComputer — "JadePuffer agentic attacks now target AI model data with ransomware" — https://www.bleepingcomputer.com/news/security/jadepuffer-agentic-attacks-now-target-ai-model-data-with-ransomware/ — 2026-07
- The Hacker News — "AI Agent Exploits Langflow RCE to Automate Database Ransomware Attack" — https://thehackernews.com/2026/07/ai-agent-exploits-langflow-rce-to.html — 2026-07
- Dark Reading — "JadePuffer: The First Complete LLM-Driven Ransomware Attack" — https://www.darkreading.com/cyberattacks-data-breaches/jadepuffer-first-complete-llm-driven-ransomware-attack — 2026-07
8. Adverse Trace position
This is a Critical-severity threat (CVSS 9.8 on the exploited CVE, KEV-listed since May 2025) targeting AI/ML infrastructure that is increasingly present in EMEA financial services environments. The shift from improvised Python scripts to a compiled, purpose-built Go ransomware with stable detection anchors (encfile, keyforge) indicates operational maturation by JADEPUFFER, though attribution to an LLM-driven autonomous agent remains unconfirmed (no MITRE ATT&CK profile; single-sourced to Sysdig). The absence of exfiltration capability in ENCFORGE reduces regulatory exposure to data-breach notification regimes but does not reduce the operational impact of losing model weights, vector indexes, and training datasets. Clients running Langflow must treat patching to ≥1.3.0 as an immediate P1 action — the KEV listing is over a year old and exploitation is confirmed in the wild. We will monitor for additional ENCFORGE deployments, hash publications, and any confirmation of the JADEPUFFER attribution. Clients with AI/ML pipelines should audit their Langflow exposure and Docker socket configurations this week.
Published via PulseTrace — Adverse Trace threat intelligence.