SecurityNot yet confirmed elsewhere1 publisher2 min readPublished
ToxNetV2 wires an LLM into the decision loop of its botnet controller
Joe Security's teardown of an AArch64 Tox botnet shows a model proposing actions that only an operator command executes, which puts the telemetry worth collecting on the controller rather than on any victim host.
The Watch · Security desk
What happened
- Joe Security published analysis on 25 August 2026 of ToxNetV2, an AArch64 Linux peer-to-peer botnet whose controller calls an LLM as part of its normal operating workflow.
- The documented loop runs from observation to model interpretation to a structured proposal, then to human approval, and only then to a change on the system.
- The recovered action set includes a model-supplied local shell command, a file write, a command executed remotely as root over SSH, and a fixed cross-compile and deploy workflow.
- The AI module is bolted into an existing Tox botnet with encrypted peer-to-peer command and control, scanner workers, self-propagation logic and 17 network-attack launchers.
- One embedded endpoint, 45.130.151.214, matches no public Tox DHT key, which is why Joe Security lists it as custom infrastructure rather than a borrowed bootstrap node.
Why it matters
- capability With shell_cmd and ssh_check in the action set, a model completion is one operator keystroke from running code, so the review standard for changes to this botnet is whatever the operator reads in the pending queue.
- constraint A blocklist built from this sample's bootstrap list is mostly public Tox relays, so anyone hunting this family has to work from host behaviour and controller egress rather than IP denial.
- decision Detection spend does not belong on new victim-host signatures here, because the AI lives in the controller role of a binary that looks the same on an ordinary bot.
- precedent If the propose-queue-approve pattern is what other families copy, the durable artefacts to hunt are the pending-action queue and the provider credentials and tokens a controller has to hold to reach a model at all.
aiexec is the whole approval step. Model output arrives as pending actions and sits in a queue until an operator runs that command, which executes and clears it [2]. What the operator has to go on beforehand is whatever aistatus prints: provider state, counters, intervals, pending actions, errors [10]. Two other commands, aifix and aiideas, queue recognized actions by themselves [18].
Ten structured action types are documented [6]. Six of them only touch the controller's own bookkeeping, recording a worker restart request, storing a task weight, updating key-value state, adding a log entry, alerting the operator, or saving an observation to AI memory [11]. That leaves four with effects beyond the log [20].
One of those four, ssh_check, runs a model-supplied command remotely as root [7], and the hard-coded target is the same address Joe Security classifies as custom infrastructure, 45.130.151.214 [9]. Read plainly, the model is administering the botnet rather than attacking anyone with it. The 17 network-attack launchers predate the AI module, and what the AI subsystem contributes to them is strategy text and task weights [8][12].
Scope is thin and worth stating. This is a static teardown of a single sample, published 25 August 2026, with no operator named, no victim count, and no linked campaign [3][19].
The blocking problem sits in the bootstrap list. Appendix A sorts the embedded Tox nodes by exact DHT public-key match against the official node list, separating one custom endpoint from nodes that belong to the public network [14]. Counted out, that is 19 public nodes plus four with degraded UDP or TCP availability, so 23 shared relays against a single custom IP on two ports [21]. Joe Security also notes the limit of its own mapping: a hostname match shows only that the same DHT identity is currently published under that name, not that the name still resolves to the IP in the sample [15]. One listed relay answers TCP on 38296 and 3389 [16], which is not where most egress rules look for peer-to-peer C2.
So the alertable indicators are narrow: 45.130.151.214 on 33445 and 443, and the dropper URL on 45.151.139.113 [9][17]. Everything else in that appendix is public Tox infrastructure, and a blocklist built from it will page you about other people's traffic.
What to watch
- A later sample that drops the aiexec gate, or points ssh_check at victim hosts instead of the operator's own box.
Clarity's read
What the record supports and how the coverage leans. The claims behind it follow.
Reality
- Evidence64
- Adoption18
- Hype gap−12
- Incentives55
- Confidence58
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
The documented AI pipeline runs observation, model interpretation, structured proposal, human approval, system change.
- [2]
aiexec executes and clears pending AI actions.
- [3]
Joe Security published "ToxNetV2: An AI-Assisted Botnet Controller" on 25.08.2026, describing an AArch64 Linux peer-to-peer botnet that integrates an LLM into the operational workflow of its controller.
- [4]
The same ToxNetV2 binary can operate either as the controller or as an ordinary bot.
- [5]
Ten AI operator commands are documented: aistatus, aiprompt, aifix, aistrategy, aitoggle, aiconfig, aiexec, aidaily, aimemory, aiideas.
- [6]
Ten structured AI action types are documented: restart_worker, weight_task, set_kv, log, alert, shell_cmd, write_file, ssh_check, compile_deploy, kv_memory.
- [7]
Four of the structured actions act outside the controller's bookkeeping: shell_cmd executes a model-supplied local command, write_file creates or overwrites a local file, ssh_check executes a model-supplied command remotely as root, and compile_deploy runs a fixed local cross-compilation workflow.
- [8]
The AI subsystem sits inside a broader Tox-based botnet with encrypted peer-to-peer command and control, host-management capabilities, scanner workers, self-propagation logic, and 17 network-attack launchers.
- [9]
45.130.151.214 on ports 33445 and 443 is classified as custom infrastructure and high-confidence IOC because no matching DHT public key appears in the official Tox node list, a classification reinforced by the same IP being the AI module's hard-coded root SSH target.
- [10]
aistatus reports AI provider state, counters, intervals, pending actions and errors.
- [11]
Six structured actions write only to controller state: restart_worker records a worker restart request, weight_task stores a task-weight setting, set_kv updates key-value state when configured, log adds an AI operations log entry, alert sends an AI-generated operator alert, kv_memory stores an observation in AI memory.
- [12]
aistrategy requests operational strategy and task-weight recommendations, and weight_task stores a task-weight setting.
- [13]
aiconfig changes AI configuration, credentials, tokens, or remote SSH settings, and aistatus reports AI provider state.
- [14]
Appendix A classifies the sample's embedded Tox bootstrap and relay nodes by exact DHT public-key matching against nodes.tox.chat, separating custom infrastructure from public nodes and from public nodes with special availability status.
- [15]
Joe Security states that the hostname mappings indicate only that the same DHT identity is currently published under that hostname, and do not establish that the hostname still resolves to the IP embedded in the sample.
- [16]
The embedded node 5.19.249.240:38296 is listed with UDP unavailable and TCP relay available on ports 38296 and 3389, and 145.239.1.105:33445 was listed as offline at the time of classification.
- [17]
The published IOCs include the URL http://45.151.139[.]113/z0l1mxjm4mdl4jjfjf7sb2vdmv/kaf.sh alongside the 45.130.151.214 endpoints.
- [18]
aifix requests corrective actions and queues recognized results, aiideas requests improvement ideas and queues recognized actions, aiprompt sends arbitrary operator text to the model and returns the response, and aidaily runs a comprehensive operational review.
- [19]
The Joe Security analysis of ToxNetV2 is a teardown of the sample and its recovered command and action set, and does not name an operator, give a victim count, or link the sample to a named campaign.
- [20]
Four of the ten documented structured actions have effects beyond the controller's own bookkeeping.
- [21]
The sample embeds 23 nodes that belong to the public Tox network, 19 listed as public nodes and four with degraded UDP or TCP availability, against one custom endpoint on two ports.
Sources
1 independent publisher whose own reporting we read for this story.
- Joe's Security
joesecurity.org
1 article · August 27, 2026
Topics and entities
Follow any of these and your For You feed starts watching them — no settings page required.