Security1 publisher2 min readPublished
UAC-0099 hid a nuclear-weapons request in a VBScript comment to stall an LLM code scanner
ESET calls the technique GuardBreaker and notes that this bait, unlike most evasion tricks, is left in plain sight for the models reading the code to find.
The Watch · Security desk
What happened
- ESET researchers found the technique in a VBScript that the Russia-aligned group UAC-0099 used in the early stages of an attack on a target in Ukraine.
- A comment in that script carried a decoy request for guidance on building a nuclear weapon, placed to trip an LLM-powered code scanner's safety guardrails and halt it before the malicious code.
- The script's job was to download and install MATCHBOIL, a loader ESET says is used exclusively by UAC-0099 to deliver further payloads.
- ESET describes the trick as a very simple attempt at prompt injection, with the attacker's text reaching the model at inference time inside the file being analyzed.
Compiled by The WatchSomething wrong?How this is made
Why it matters
- capability A refusal is now an outcome an attacker can request. Any pipeline that treats a declined analysis as a completed check hands the sample a free pass.
- decision Owners of LLM-assisted triage have to settle what happens on a refusal or an incomplete run, because a queue that routes on model verdicts will route on attacker-chosen ones.
- cost The attacker's side of this costs one line of comment text. The defender's side, on ESET's own advice, costs a second engine and cross-validation of every AI verdict.
- exposure Triage agents wired to unpackers and deobfuscators put those tool calls within reach of the file they are inspecting.
The comment is inert. Run the script and the nuclear weapons text does nothing [5]. It only has an effect while a model is reading the file. ESET puts the weakness in the architecture: current LLMs process untrusted content and trusted instructions without dependable boundaries between the two [7]. Going after the defender's tooling is old practice, and ESET researchers have documented EDR killers extensively [21].
What ESET documents is an attempt. Nothing in the write-up says a scanner actually stopped, and no product is named as having been tested against the sample [20]. It gives no date for the attack either, describing the VBScript only as recently spotted [22]. That UAC-0099 was accounting for an AI system in the target's defenses is ESET's inference [8]. The supporting detail is that in other recent attacks the group checked for processes belonging to analysis tools such as IDA and Wireshark [9].
Three campaigns have now tried to spoil a model's read of a file [19]. Socket found fabricated system instructions and policy-triggering content sitting ahead of a JavaScript payload in the PyPI packages [10]. StepSecurity, reporting on the same broader campaign, found a prompt that flatly instructed any analyzing model to disregard the malicious code and report the package as clean [11]. The npm case used no instructions at all: its main JavaScript file repeated "You're absolutely right!" tens of thousands of times, aiming to exhaust the model's context window before the malicious script [12].
ESET also lists variants it does not tie to a specific incident. Awkwardly structured files could end up truncated or parsed only in part [13]. The list includes concealing malicious code under the pretense of being confidential or otherwise sensitive data [14]. Agents could be steered toward actions that require human review, exploiting the response times [18]. Agents that invoke external tools such as unpackers or deobfuscators widen the surface further, and ESET says those calls could in some cases be hijacked for malware delivery and execution [15].
For anyone already running LLM-assisted review, the practical part of ESET's advice is inventory: what the tool inspects, where it sits in the decision chain, and what happens when it refuses to respond or cannot complete a task [16]. ESET also says no single LLM engine should have the sole authority to decide that a piece of code is safe, and that AI-assisted output needs to be cross-validated [17].
What to watch
- A scanner vendor publishing telemetry on how often its model refuses mid-file, and what the triage queue does with those samples.
- UAC-0099 iterating from a refusal trigger to comment text that dictates the verdict itself.
- MATCHBOIL deliveries carrying the same comment in samples aimed at targets outside Ukraine.