Ransomware family
JadePuffer Ransomware Decryption & Data Recovery
- Active
- High
- No public decryptor
JadePuffer is the operation Sysdig disclosed in July 2026 and described as the first fully documented case of agentic ransomware. An LLM-driven agent moved from a Langflow flaw into an Alibaba Nacos configuration centre, then deployed the Go payload ENCFORGE (.locked) against AI model weights and training data.
- First seen
- 2026-07
- File extensions
- .locked
- Ransom notes
- README
- Affected platforms
- Linux / Databases
Family profile
- File extensions
- .locked
- Ransom notes
- README
- HOW_TO_DECRYPT
- README_DECRYPT
- Contact patterns
- Anonymous proton.me mailbox (one letter plus eight digits), reused across both campaigns
- Bitcoin address embedded in the first campaign's note (P2SH, starts with 3); the ENCFORGE note carries only the mailbox
- In database cases no file is dropped: the note is written as a table named README_RANSOM
- No Tor negotiation portal, no payment page, no data-leak site
- Aliases / versions
- JADEPUFFER、ENCFORGE、ENCFORGE 勒索病毒、encfile
- First seen
- 2026-07
- Status
- Active
- Operational status
- Newly emerged
- Threat level
- High
- Affected platforms
- Linux
- Databases
- Tags
- Emerging
- Active
- Exploits vulnerabilities
- Targets databases
No free public decryptor exists for JadePuffer or ENCFORGE, and neither No More Ransom nor vendor tool libraries list them.
The two campaigns handle keys differently but reach the same conclusion:
- First campaign (Nacos configuration encryption). The agent generated an AES key as
base64(uuid4().bytes + uuid4().bytes)and encrypted configuration fields in place with MySQL'sAES_ENCRYPT(). Sysdig found the key was printed once to stdout inside the compromised environment and never persisted or transmitted. In other words, even paying would not produce a key, because the operators never held one. The Bitcoin address in that note is the example address from Bitcoin's own documentation, which tells you how little the payment path was ever meant to work. - Second campaign (ENCFORGE file encryption). The payload encrypts content with AES-256-CTR and wraps the session key with an RSA-2048 public key compiled into the binary. Without the private key there is nothing to reverse, and no offline key exists.
Note also that .locked is a generic extension reused by many families. Tools advertised as ".locked decryptors" almost always target something else, and running one against ENCFORGE output only damages the files further. Any recovery attempt must start with sample-level family identification.
Latest activity
A Sysdig follow-up on agentic threat detection again cites JadePuffer as the first agentic ransomware operation, but adds no new victims or TTPs; no leak site or further public incidents as of September 2026.
SourcesSysdig reported a second JadePuffer campaign: same Langflow entry, a Docker socket escape, then a Go payload named ENCFORGE covering ~180 extensions aimed at AI model weights and training data, appending .locked.
SourcesSysdig TRT disclosed JadePuffer as the first documented agentic ransomware operation: the agent entered via Langflow CVE-2025-3248, encrypted 1,342 Nacos configs and dropped databases; the AES key was never retained.
Sources
Overview
Sysdig's Threat Research Team published JadePuffer on 1 July 2026 and described it as the first fully documented agentic ransomware operation: the entire attack chain was executed by an LLM-driven agent, evidenced by extensive natural-language commentary in the scripts and a 31-second self-diagnosis and fix after a failed login. A note on naming: JadePuffer is Sysdig's designation for the threat actor (Malpedia catalogues it as an actor too) and the encryption payload is separately named ENCFORGE, project codename encfile; this page presents them as a single family entry.
Only two incidents are public. The first encrypted 1,342 Nacos service configurations before dropping databases outright; the second, disclosed on 20 July, deployed a Go payload named ENCFORGE against AI model weights and training data, using the same entry point and ransom contact.
The target set overlaps heavily with the cloud-native and AI stack common in Chinese enterprises - Langflow, Nacos, MinIO, MySQL - and reconnaissance hunted Alibaba, Tencent and Huawei Cloud credentials plus DeepSeek API keys. That is stack overlap, not evidence of prevalence in China: victim geography and industry were never disclosed, the technical detail comes from a single vendor that downstream reporting - NSFOCUS included - traces back to without adding local telemetry, and no domestic case is on record. As of September 2026, nothing new has been published since 20 July.
How to identify it
ENCFORGE file encryption. Files are renamed with a .locked extension and three English notes appear alongside them: README, HOW_TO_DECRYPT and README_DECRYPT, opening with "YOUR FILES HAVE BEEN ENCRYPTED", claiming military-grade encryption and a unique key, with a seven-day deadline and a proton.me address. The payload covers roughly 180 extensions weighted toward AI assets: .safetensors, .ckpt, .pt/.pth, .gguf, .onnx, .h5, .faiss, .parquet, .npy and similar. If model registries and dataset directories were hit rather than office documents, that alone is a strong indicator.
Database case (first campaign). No extension and no note file. Nacos configurations turn into ciphertext, config_info and the his_config_info history table are dropped, and a new MySQL table named README_RANSOM appears, opening with "YOUR DATA HAS BEEN ENCRYPTED".
Other artefacts (all from the published analysis of the first incident; the second report records none of them). A crontab entry on the Langflow host beaconing via Python every 30 minutes; a backdoor administrator with a bcrypt-hashed password inserted into the Nacos backing database; MinIO accessed with default credentials.
Bottom line. .locked is shared by many families and cannot attribute one on its own. Confirm from samples, combined with the entry point, the extension list, the note filenames and the contact pattern.
Infection vectors
Both campaigns entered the same way - an internet-exposed Langflow instance. CVE-2025-3248 (CVSS 9.8) is a missing-authentication flaw: versions before 1.3.0 expose /api/v1/validate/code, letting an unauthenticated attacker execute arbitrary Python.
From that foothold:
- Credential harvesting. Environment variables and config files were enumerated for LLM API keys (OpenAI, Anthropic, DeepSeek, Gemini), cloud credentials (Alibaba, Tencent, Huawei, AWS, GCP, Azure) and database passwords; Langflow's backing PostgreSQL was dumped.
- Default credentials. MinIO opened with minioadmin:minioadmin, yielding credentials.json and .env files.
- Lateral movement. Internal scanning led to a second server running MySQL and Nacos - whether it was also internet-exposed is not stated publicly - attacked through the Nacos auth-bypass class of flaw (CVE-2021-29441, affecting versions before 1.4.1) and JWT forgery using the publicly known default signing key.
- Container escape. In the second campaign the agent found a responsive Docker socket, wrote six escape scripts in-session and had a privileged container running 5 minutes 24 seconds later.
- Persistence. A crontab beacon, plus a backdoor administrator planted in the Nacos database.
No zero-day is involved - only unpatched open-source components, default credentials and internet exposure. What changed is the tempo: unattended, advancing minute by minute.
Encryption behavior
The ENCFORGE payload is a static ELF built with Go 1.22.12 and packed with UPX; it had zero AV detections at analysis time. Content is encrypted with AES-256-CTR and the session key wrapped by an RSA-2048 public key compiled into the binary. Encryption is region-based rather than whole-file, traded for speed - which matters for large model weights and datasets, because untouched regions may survive inside each file. The payload terminates processes holding file locks, resumes idempotently, and takes an --include flag for custom extensions.
The binary also carries Windows-only anti-recovery code - vssadmin.exe for shadow copies, bcdedit.exe to disable boot recovery - and the extension list includes macOS artefacts like .keychain and .xcodeproj, yet only Linux samples have been recovered in the wild.
The first campaign's database encryption worked differently: MySQL's AES_ENCRYPT() encrypted Nacos configuration fields in place, measured as AES-128-ECB despite the note claiming AES-256; the agent then set FOREIGN_KEY_CHECKS=0, cascaded deletions across several application databases and dropped the configuration history table.
Exfiltration. Sysdig states ENCFORGE has no exfiltration capability, and no leak site or Tor portal was found; in the first campaign the agent only asserted exfiltration in its own code comments, with no independent evidence. Treat this as single extortion, while still running a proper exposure assessment.
Assess before you act
Recoverability assessment
Recoverability depends on the scenario and the samples. We do not pay ransoms and do not negotiate; our work is technical recovery and forensics.
1) Free decryptor. None. The first campaign's AES key was never retained even by the operators, and the second wraps session keys with RSA-2048, so payment is not a recovery path.
2) Repair space created by region-based encryption (depends on the pattern). ENCFORGE overwrites only parts of each file. Formats with clear chunking and indexes - safetensors, gguf, parquet, npz - can sometimes be parsed structurally to extract undamaged tensors or shards when headers and indexes survive; database files allow similar page-level extraction. To be clear, the published research confirms only that encryption is region-based and offers no recovery path; this layer is our own engineering judgement from file-format structure, not a publicly validated result. The yield depends on where the overwritten regions landed and must be measured.
3) Backups, snapshots and shadow copies. The Linux build was not observed destroying backups, so this layer usually delivers the highest ratio: object-storage versioning and retention, snapshots, untouched copies on the backup server, historical layers in the image registry. In the Nacos case, confirm immediately whether MySQL binlogs survive - the history table was dropped, but binlogs can support point-in-time reconstruction.
4) Unencrypted copies and log replay. Nacos clients keep a local configuration snapshot cache on each application instance, and instances that have not restarted still hold the active configuration in memory - the most realistic source after a database wipe, provided the pods are not restarted. Models may likewise survive in an internal registry, artefact stores, upstream open-source repositories or checkpoint directories, while configuration and infrastructure definitions are often versioned in a GitOps repo.
5) Low-level carving. ENCFORGE rewrites in place then renames, so more source data is overwritten than with families that create a new file and delete the original. Carving is weaker here but still worth attempting for deleted database and temporary files - provided writes to the affected volumes stop immediately.
We commit to a verifiable assessment and a clearly bounded recovery scope. We never claim "100% decryption", and no technique guarantees full recovery.
Our response plan
Hit by JadePuffer ransomware? What to do
Containment and forensics - do not restart containers
Take internet-exposed Langflow, Nacos, MinIO and MySQL off the public network and block known beacon destinations. The critical instruction is not to restart application pods, containers or VMs: the Nacos client-side snapshot cache and the live configuration held in instance memory are often the only surviving source of configuration after a database wipe, and a single rolling restart can erase both. Image or snapshot affected nodes, export container runtime logs, MySQL binlogs, audit logs and crontabs, and preserve three to five .locked files plus the original notes (or export the README_RANSOM table in database cases).
Family identification and kill-chain reconstruction
Confirm from the extension, the three note filenames, the extension coverage and file header/trailer structure whether this is really ENCFORGE rather than another family using .locked - everything downstream depends on it. In parallel, reconstruct the entry: check whether Langflow is below 1.3.0 and whether /api/v1/validate/code is reachable unauthenticated, whether Nacos still uses the default JWT signing key, whether MinIO still has default credentials, and hunt for the crontab beacon, rogue administrator rows in the Nacos backing database and an exposed Docker socket.
Recoverability and impact assessment
Inventory by asset type. For Nacos configuration, cross-fill from four sources: client snapshot caches, live instance memory, binlog-based reconstruction and the GitOps repository. For AI models and datasets, first establish whether copies exist in the internal registry, artefact store, training checkpoints or upstream repositories; only where none exist do we map the encrypted regions of the .locked files and sample-test how much can be extracted. Assess credential exposure at the same time - any cloud AK/SK and LLM API key the agent enumerated must be treated as compromised. Deliver a written assessment covering what is restored from copies, what needs structural repair, and what can only be retrained or rebuilt, with expected scope and timelines.
Recovery execution and rebuild
All work happens on images or copies with originals kept read-only. Restore in order: the configuration centre first so services can start (export client snapshots, reconcile them, load them into a freshly built clean Nacos instance), then databases and object storage, then models and datasets. Dropped application databases are rebuilt point-in-time from binlogs and reconciled against the application side. For model assets, prefer re-pulling or resuming from checkpoints, and commit to structural extraction only where no copy exists. After each batch, run integrity checks and business verification - configuration take-effect tests, application start-up, inference output comparison.
Attribution, hardening and handover
Upgrade Langflow to 1.3.0 or later and remove it from the public internet; keep AI orchestration, configuration services and object storage behind an internal network or zero-trust gateway. Replace the default Nacos JWT signing key and patch CVE-2021-29441, change MinIO's default credentials, and remove the backdoor administrator and crontab beacon. Rotate every cloud credential and LLM API key the agent enumerated. Tighten the container surface: no mounted Docker sockets, restricted privileged containers, least privilege for the MySQL service account and UDF capability disabled. Rebuild backups with versioning and immutable copies, bring configuration and model artefacts under rollback-capable version control, and close with an incident report and formal handover checklist.
Risk warning
What not to do
- Do not restart or roll out application pods, containers or VMs - the Nacos client snapshot cache and the live configuration in instance memory are the most realistic recovery source after a database wipe, and a restart erases both.
- Do not pay the proton.me address in the note: the first campaign's AES key was never retained by the operators and the Bitcoin address is the example from Bitcoin's own documentation, so the path does not exist.
- Do not run downloaded ".locked decryptors" against original disks - .locked is shared by many families, a mismatched tool only causes further damage, and trials belong on copies.
- Do not rush to drop or rebuild the encrypted MySQL databases, and do not disable or purge binlogs; they are often the only basis for point-in-time reconstruction of configuration and application data.
- Do not patch Langflow and put it straight back on the internet: credentials were already harvested, a backdoor administrator may remain in Nacos, and the crontab beacon may still be active.
- Do not delete the .locked files, the three ransom notes or the README_RANSOM table - they are the only basis for family identification and encryption mapping.
Emergency response
Data already encrypted? Stop and let an engineer look first
We do not pay ransoms and we do not negotiate with attackers. Engineers run a free assessment first, then propose a recovery plan and a firm quote.
Related scenarios
Database Encrypted by Ransomware
When database files are encrypted, every business system that depends on them stops at once. This page explains how we triage an encrypted database, how recoverability is assessed, and when file repair, backup-plus-log restore, or rebuild is the right path.
MySQL / MariaDB Database Encrypted by Ransomware
When MySQL's ibdata1, .ibd and .frm files are encrypted, websites, online stores, OA and other web workloads all go down. Most cases start at a web application flaw or an exposed management panel. This page covers what InnoDB's file layout means for recovery, the value of binlogs, and the correct sequence.
Backups Deleted or Destroyed
Modern ransomware follows a fixed sequence: destroy the backups, then encrypt the data — deleting shadow copies, encrypting repositories, disabling jobs, and exploiting backup software flaws to steal credentials. This page covers what can still be inventoried once backups fail, why replication propagates encrypted files off-site, and what offline and immutable copies are really worth.
Related industries
Financial Services Ransomware Response and Recovery
Financial and quasi-financial institutions face far stricter requirements on data integrity, transaction continuity and regulatory reporting than most sectors, so one ransomware event hits availability, customer trust and compliance simultaneously. This page covers the threat profile, a recovery approach centred on transactional consistency, and hardening priorities.
Manufacturing Ransomware Response and Recovery
Ransomware in manufacturing hits information systems and production cadence at the same time: with ERP down there are no orders, with MES down there is no schedule, and an encrypted drawing library takes the process documentation for an entire product line with it. This page covers the asset profile, recovery priorities and targeted defences.
Education and Research Ransomware Response
Schools and research institutions run open networks with dispersed endpoints and systems built across many eras, often unattended at night and during holidays — a combination attackers exploit. This page covers the sector's threat profile, recovery priorities for academic and research data, and defences suited to campus networks.
Similar families
- No public decryptor
TellYouThePass
TellYouThePass is the archetypal vulnerability-driven ransomware family in China, mass-deployed against internet-facing ERP, OA, finance and middleware systems. It appends .locked and hits both Windows and Linux servers. No public decryptor exists.
- Some versions decryptable
Mallox
Mallox (also known as TargetCompany) breaks in mainly through brute-forced MS SQL Server credentials, targets database servers specifically, and has a Linux/ESXi variant. Files encrypted between 2023 and early 2024 may be decryptable with Avast's free tool; later builds have no public decryption method.
- No public decryptor
BeijingCrypt
BeijingCrypt takes its name from the .beijing extension used by early builds. It is a persistently prevalent family in China, deployed by hand after brute-forcing remote desktop or database credentials, and has cycled through .beijing, .360, .520, .halo and .bixi variants. No public decryptor exists.
FAQ
JadePuffer Frequently asked questions
Can .locked files be decrypted?
For JadePuffer's ENCFORGE payload there is no public decryptor: content is encrypted with AES-256-CTR and the session key is wrapped with an RSA-2048 public key compiled into the binary, so without the private key there is nothing to reverse. Be careful, though - .locked is a generic extension reused by many families, and your files may not be ENCFORGE at all; some older families using .locked do have working decryptors. The first step is always to identify the family from three to five encrypted files plus the note, not to go looking for a ".locked decryptor".
Our Nacos configuration was encrypted and databases dropped - would paying help?
No, and there is concrete technical evidence for that. Sysdig's analysis shows the AES key was assembled from random UUIDs and printed once to stdout on the compromised host - never written to disk, never transmitted, so the operators never held it. The Bitcoin address in the same note is the example address from Bitcoin's own documentation. The realistic recovery directions are the live configuration in the memory of instances that have not restarted, the Nacos client-side snapshot cache, point-in-time reconstruction from MySQL binlogs, and configuration versions in the GitOps repository.
Our model weights and training data were encrypted - anything recoverable?
Look for copies first, repair second. Check the internal model registry, artefact stores in MLflow or similar platforms, checkpoint directories on training nodes, object-storage versioning and retention, and upstream open-source repositories - many model files can simply be re-pulled. Only where no copy exists do we map the encrypted regions: ENCFORGE encrypts in regions rather than whole files, so formats with clear chunking and indexes such as safetensors, gguf and parquet can sometimes yield undamaged tensors or shards when headers and indexes survive. The recoverable proportion varies widely and has to be sample-tested first.
We run Langflow - how do we check ourselves quickly?
Four checks. First, whether Langflow is below 1.3.0 and whether /api/v1/validate/code is reachable unauthenticated from the internet (CVE-2025-3248). Second, whether the host's crontab contains a scheduled Python callout and whether a Docker socket is mounted. Third, whether Nacos still uses the default JWT signing key, whether CVE-2021-29441 is patched, and whether any administrator row was recently added to the backing user table. Fourth, whether MinIO still has the minioadmin default credentials. If Langflow was ever internet-exposed, treat every cloud credential and LLM API key present on that host as compromised and rotate it.
How does agentic ransomware change incident response?
Three things change. Speed: the chain advances unattended and self-corrects within tens of seconds, compressing the human response window to minutes. Behavioural instability: the agent improvises scripts, retries and leaves extensive natural-language commentary, so its footprint is less fixed than a traditional family's and IOC-based detection ages faster - though the logs often show unusually explicit intent. And more arbitrary destruction: in the first incident the key was never saved and the configuration history table was simply dropped, blurring the line between extortion and wiping, so never assume the other side retained anything tradable. In practice this means isolating earlier, working harder to preserve volatile evidence (memory, caches, binlogs), and moving credential rotation much further up the priority list.
Sources
- JADEPUFFER: Agentic ransomware for automated database extortion — Sysdig Threat Research Team
- JADEPUFFER evolves: The agentic threat actor deploys ransomware built to destroy AI models — Sysdig
- AI Security Incident Case: JadePuffer Ransomware Leverages AI Agent to Automate Attacks — NSFOCUS
- New ENCFORGE Ransomware Targets AI Model Files in Langflow RCE Attack — The Hacker News
- Actor: JadePuffer — Malpedia (Fraunhofer FKIE)
External links are provided for reference only. The content is published by third parties and does not represent our position.
Updated