Case Library / Agentic AI Attacks (AI-Powered Social Engineering) / PromptLock: the "first AI ransomware" was a research prototype (2025)

PromptLock: the "first AI ransomware" was a research prototype (2025)

ESET found PromptLock, ransomware that had a local AI model write its scripts at runtime. It turned out to be an NYU research prototype. What it showed.

Share:

Social Engineering Examples·5 sources

PromptLock was billed as the first AI-powered ransomware when ESET found it on VirusTotal in late August 2025. It turned out to be a university lab prototype. The sample, written in Go, carried plain-English prompts and asked a locally run open-weight model, gpt-oss:20b via Ollama, to write Lua scripts on the fly: find files, inspect them, copy them out, encrypt them. On 3 September 2025, ESET updated its research after NYU Tandon researchers said the upload was theirs. Status: Research prototype; no victims.

Key takeaways

  • No one was attacked. There's no known victim and no ransom paid.
  • The malicious code didn't exist in the file. A local AI model wrote it at runtime.
  • That makes signature-based detection harder, which is the point the researchers wanted to make.
  • The ransom note's Bitcoin address was reportedly linked to Satoshi Nakamoto, Bitcoin's creator.

Timeline

Date (2025) Event
25 August ESET researchers spot the samples on VirusTotal
26 to 27 August ESET writes it up on WeLiveSecurity and announces "the first known AI-powered ransomware"
3 September ESET updates its research: the authors of the academic paper "Ransomware 3.0: Self-Composing and LLM-Orchestrated" say the sample is their lab upload

ESET's Anton Cherepanov and Peter Strýček found and analysed it without knowing where it came from. The researchers say the version they uploaded didn't work outside their contained test setup.

How it worked

Piece What it did
The binary Go code, with Windows and Linux samples, carrying natural-language prompts
The model gpt-oss:20b, an open-weight model, running locally through Ollama
The output Lua scripts written at runtime for file discovery, inspection, exfiltration and encryption
The encryption SPECK-128, per ESET
The note A ransom message with a Bitcoin address reportedly tied to Satoshi Nakamoto

Think about what a scanner normally looks for: known bad code. Here, the bad code isn't in the file. It gets written fresh each time by a model sitting on the same machine. ESET and others called this "living off AI", like attackers "living off the land" with built-in system tools.

Tip: if nobody in your organisation runs local AI models, an unexpected process talking to an Ollama API is worth a look.

Why it still matters

A prototype isn't an attack. But PromptLock is a clear, documented example of the design: prompts baked into the binary, logic generated during execution. The following summer, Sysdig reported JADEPUFFER, a real attack run largely by an AI agent. PromptLock showed the idea in a lab first.

It's also a lesson in reading headlines. "First AI-powered ransomware" was accurate about what ESET saw. It didn't tell readers who made it, because nobody knew yet.

What stops it

  • Use the signatures. ESET detects the samples as Linux/Filecoder.PromptLock.A and WinGo/Filecoder.PromptLock.A.
  • Watch behaviour, not just files. Flag unexpected calls to local AI runtimes and scripts that are generated or rewritten on the fly.
  • Treat a local model as a possible execution engine, the same way defenders watch built-in admin tools.
  • Back up offline, as with any ransomware.

See also AI-generated malware, PromptFlux and agentic AI attacks.

Common questions

What is PromptLock ransomware?

A Go-based ransomware prototype that used a local open-weight AI model to write its file-stealing and encryption scripts at runtime. ESET found it on VirusTotal in August 2025.

Was PromptLock used in a real attack?

No. NYU Tandon researchers said it was their lab prototype, and no victim is known.

Which AI model did it use?

gpt-oss:20b, run locally through Ollama.

Why is it hard to detect?

The harmful code is generated at runtime, so it isn't sitting in the file for a scanner to match.

Sources
Cite this case

Social Engineering Examples. “PromptLock: the "first AI ransomware" was a research prototype (2025)”. Accessed 3 November 2026. https://socialengineeringexamples.com/promptlock-ai-ransomware-poc-2025

Attack Chain & Defense
1Tooling Setup
What happened

The NYU Tandon paper and ESET analysis describe selecting an open-weight LLM, here OpenAI's gpt-oss:20b, and using Ollama for local inference.

The control that would have stopped it

Restricting which local AI-runtime software (such as Ollama) can be installed and run on managed endpoints, via application allow-listing and EDR alerts on new local inference-server installs, is the closest practical control since the underlying choice to run an open-weight model offline is otherwise invisible to network monitoring.

2Prompt Engineering
What happened

The sample embedded natural-language prompts for generating ransomware-related scripts, including filesystem enumeration, file inspection, exfiltration, encryption, and ransom-note text.

The control that would have stopped it

Prompt crafting happens entirely on the attacker's own machine before any contact with a target system, so there is no realistic external control at this specific stage; the nearest real lever is upstream, at model-safety training and refusal-tuning by open-weight model publishers, with Stage 1's endpoint control also mitigating by limiting where such prompts can be run in the first place.

3Payload Packaging
What happened

The sample was a Go binary, with Windows and Linux samples reported by ESET; the binary contained the prompts and orchestration logic.

The control that would have stopped it

Static antivirus and YARA-style scanning for binaries embedding clusters of ransomware-consistent natural-language prompts (encryption, ransom, exfiltration terms) alongside Ollama/LLM API client code can flag suspicious packaging before execution, even though the actual attack script is not yet generated.

4Runtime Code Generation
What happened

During execution, the binary called the local model through Ollama and received Lua scripts that were then used by the sample.

The control that would have stopped it

Endpoint detection and response tuned to flag unexpected local processes calling a local LLM inference API, an unusual 'living off AI' pattern analogous to living-off-the-land binary monitoring, can catch the runtime code-generation step regardless of what the generated script itself looks like.

5Discovery and Autonomous Triage
What happened

The AI-generated Lua scripts enumerate the local filesystem and inspect file contents, with the model deciding per file whether to exfiltrate or encrypt it, a judgment call ESET notes is normally made by a human operator or a fixed rule in conventional ransomware.

The control that would have stopped it

Least-privilege file access and mandatory access controls that limit which processes can enumerate and read sensitive user files reduce what an untrusted binary's AI-generated scripts can discover in the first place, independent of the AI's own decision logic.

6Exfiltration
What happened

Files flagged for theft are copied out via the AI-generated exfiltration scripts.

The control that would have stopped it

Network egress monitoring and data-loss-prevention tooling that inspects outbound transfers for sensitive-file patterns can catch exfiltration regardless of whether the code that performed it was AI-generated or hand-written.

7Encryption and Extortion Note
What happened

ESET describes an encryption path using the SPECK 128-bit cipher, and a ransom note is generated referencing a Bitcoin address later identified as one publicly associated with Bitcoin's creator, a detail researchers read as a placeholder rather than an attacker-controlled wallet.

The control that would have stopped it

Ransomware-specific behavioral detection, such as canary files and alerts on rapid mass file modification or renaming, can interrupt encryption in progress without relying on a static signature for the specific AI-generated encryption routine.

8Payout Demand (Objective Completion)
What happened

The designed end state is a ransom demand to the victim for payment; in this case the step was never exercised against a real target, and ESET, and later the NYU Tandon authors, confirmed the sample was a research upload to VirusTotal rather than a live extortion attempt.

The control that would have stopped it

Offline, tested backups and an incident-response playbook that removes any operational need to pay make the payout step moot even if a demand is received; publishing detection signatures (Filecoder.PromptLock.A) also lets anyone who encounters the sample identify it as a known, and in this case academic, artifact rather than a live threat.

Quick Facts
Victim
None confirmed.
No real organization or individual is known to have been attacked; the sample was a proof-of-concept found on the VirusTotal malware-analysis platform.
Location
Malware sample uploaded to and found on VirusTotal
(a global, cloud-hosted malware-analysis platform, no fixed geography); underlying research conducted at NYU Tandon School of Engineering, Brooklyn, New York, USA; discovery and analysis performed by ESET Research, headquartered in Bratislava, Slovakia
Date
Sample discovered by ESET on VirusTotal on August 25, 2025
; WeLiveSecurity writeup dated August 26, 2025; ESET public disclosure August 27, 2025; ESET update confirming academic origin September 3, 2025
Impact
No confirmed real-world victim or ransom payment is associated with PromptLock
Basisnot-a-lossProof of concept, no real victim and no ransom paid
; the ransom note embedded in the sample references a Bitcoin address reportedly linked to Bitcoin creator Satoshi Nakamoto.
Status
Corroborated research/advisory
Case Type
Research / Advisory
Sector
Not Disclosed / Unspecified
Threat Actor
Authorized Tester or Researcher
Explore more

Related Cases

Browse by what this case has in common with others in the library.