TI-2026-097C โ€” One Binary Per CPU: The Cross-Architecture Build Matrix

Classification: HIGH ยท Forensic threat intelligence ยท Dropped-sample corpus ยท Series: Reading the Drop

The first two letters ranked the drop corpus honestly and tore down its worst single specimen. This one looks sideways, at a pattern that runs across many of the real payloads at once: the operators do not ship a binary. They ship a matrix โ€” the same miner cross-compiled for every CPU a victim device might run, from a processor designed in 1979 to one that barely exists in the field yet. It is the assembly line behind the infection, and reading it reveals two things: how total the coverage has become, and a quiet blind spot at its leading edge โ€” the honeypot's own classifier under-rates precisely the newest architectures, so the very ranking the first letter prescribed looks past the frontier builds.

1. The Matrix, Three Times Over

Filter the corpus to the real, classified payloads and a shape repeats. A single family arrives not as one file but as a set, one per instruction-set architecture, fronted by a small loader that detects the CPU and pulls the matching build. Three separate operations in the corpus do exactly this:

OperationLoaderArchitectures shippedFamily
RedTailsetup.sh / clean.shx86_64 ยท i686 ยท arm7 ยท arm8 ยท riscvRedTail (XMRig)
41.216.189.236run.shi386 ยท m68k ยท aarch64 ยท loongarch64Mirai/gafgyt-style
31.170.22.205dl600armv5 ยท armv6Whisper (sev 45)

Collapse the duplicates and the corpus covers nine distinct architectures: m68k, armv5, armv6, arm7, arm8/aarch64, i386/i686, x86_64, riscv, loongarch64. That range is the point. m68k is the Motorola 68000 โ€” a CPU from 1979, still alive inside industrial controllers and ancient embedded gear. loongarch64 is a 2020s Chinese architecture only now appearing in the field. riscv is the open-standard newcomer. The same drop directory on 41.216.189.236 holds a build for a forty-six-year-old processor and one for a CPU most defenders have never seen in a sample โ€” side by side, xnxnxnxnxnxnxnxnm68kxnxn next to xnxnxnxnxnxnxnxnloongarch64xnxn.

Whatever the compromised thing is โ€” a router, a NAS, a set-top box, an IP camera, a point-of-sale terminal, a hobbyist board โ€” there is a binary waiting for its CPU.

2. It Is Maintained, Not Frozen

A multi-arch kit could be a one-time build that an operator drops forever. RedTail's is not. The corpus caught two RedTail campaigns, on 2026-07-09 and 2026-07-19, and the per-architecture binaries carry different hashes across them:

Architecture2026-07-092026-07-19
x86_6459c29436โ€ฆa531f3e6โ€ฆ
i686048e374bโ€ฆa485511fโ€ฆ
arm73625d068โ€ฆf3a8ffeeโ€ฆ
arm8dbb7ebb9โ€ฆ8ec920a3โ€ฆ

Ten days apart, the whole matrix was recompiled. Whether the change was a config update, an evasion tweak, or a pool rotation, the operational fact is the same: this is a maintained toolchain with a build pipeline behind it, not a static payload someone found and reuses. Someone runs make across a rack of cross-compilers on a cadence. The 07-19 campaign also added riscv to the set โ€” the matrix is not just refreshed, it is being extended.

3. The Blind Spot at the Frontier

Here is where this letter feeds back into the first. TI-2026-097A's whole thesis was: do not rank the drop corpus by count โ€” rank it by content and severity. That is correct, and this letter finds its limit.

The honeypot's auto-classifier handled the common RedTail builds well โ€” redtail.arm7, arm8, i686, x86_64 were each scored severity 20โ€“25 and tagged T1496 (resource hijacking). But redtail.riscv was scored severity 0 โ€” recognised as family RedTail, yet assigned no tactic and no technique, landing at the very bottom of a severity-ranked list. And the whisper ARM ELFs on 31.170.22.205 were labelled "Windows API dropper" โ€” an ARM Linux binary tagged as Windows malware.

The pattern is legible: the classifier degrades on the newest and rarest architectures. It has seen ten thousand ARM and x86 miners and scores them confidently; it has seen almost no RISC-V, so it shrugs. Which means the strategy of building for the frontier has an incidental second payoff beyond reaching new devices โ€” it partially evades classification. A RISC-V miner and an x86 miner from the same campaign, the same operator, the same make, land at opposite ends of the severity ranking the defender was told to trust.

This does not overturn 097A โ€” severity is still a far better sort than count. But it names the residual: severity-ranking under-weights exactly the forward-looking builds, because novelty and low-classification-confidence coincide at the architectural edge. The honest sort is severity plus a flag for "family-known but arch-unrecognised," so the frontier builds float up instead of sinking.

4. Clearing the Field, Surgically

The matrix is the delivery; clean.sh is what the campaign does on arrival, and it is a small masterclass in turf warfare. Where the #biret worm of the previous letter evicts rivals with a blunt killall list and a single /etc/hosts blackhole, RedTail's clean.sh is precise. It defines a helper that edits competitors out of persistence rather than just killing their processes:

clean_file() {
  chattr -ia "$1"
  grep -vE 'wget|curl|/dev/tcp|/tmp|\.sh|nc|bash -i|sh -i|base64 -d' "$1" >/tmp/clean_file
  mv /tmp/clean_file "$1"
}

It chattr -ia to strip the immutable bit competitors set to protect themselves, then runs that filter across every crontab (/var/spool/cron/crontabs/*, /etc/crontab, /etc/cron.hourly|daily|weekly|monthly|d), anacrontab, and the shell rc files (~/.bashrc, ~/.bash_profile, ~/.profile) โ€” deleting any line that fetches or executes a payload while leaving the file otherwise intact. It then systemctl stop/disables the named service c3pool_miner (a specific rival Monero-pool miner), zero-truncates rival binaries hiding under decoy names (systemtd โ€” a typosquat of systemd โ€” plus /bin/-bash and /usr/bin/.sh), and wipes /tmp, /var/tmp, and /dev/shm of everything but its own working directory.

The difference from a blunt killall matters forensically: clean.sh removes persistence as well as processes, so a competitor cannot simply respawn from its own cron entry after RedTail lands. The host is not just cleared; it is de-persisted in the attacker's favour.

5. The Counter-Narrative

Steelman. "Multi-architecture IoT malware is not news โ€” Mirai shipped a dozen builds in 2016. You've counted some architectures and found a classifier bug. Where is the intelligence?"

The framing earns its length on two points a "not news" dismissal skips:

What is not claimed: that the three operations share an operator (they are distinct families and hosts; only the strategy is shared); that RISC-V/LoongArch infections are yet common (they are forward positioning, and the letter says so); that the classifier is broken (it is strong on common architectures โ€” it degrades specifically at the frontier); or that clean.sh is unique to RedTail (surgical cleaners are a genre โ€” this is a clear specimen of it).

Confidence: HIGH that the corpus contains three multi-architecture delivery operations spanning nine CPUs, that RedTail's matrix was rebuilt between campaigns, and that clean.sh performs surgical competitor de-persistence (all in the retained data); MEDIUM that RISC-V/LoongArch inclusion is deliberate forward positioning and that the classifier's frontier weakness confers meaningful evasion.

6. Defence Response

7. A Note on Method

Built through honeypot_downloads for the per-URL, per-hash, per-classification delivery records that expose the architecture matrix and the cross-campaign rebuild, and honeypot_sample_analysis for the retained bytes of clean.sh. The architecture list, the differing hashes across campaigns, and the severity anomalies (RISC-V at 0, ARM-as-Windows) are read directly from the classifier output. No SQL touched the investigation, and no sample executed โ€” Cowrie captured the drops; it did not run them.

8. Investigation Metadata

FieldValue
Dossier IDTI-2026-097C
SeriesReading the Drop (part 3 โ€” the build matrix)
OperationsRedTail ยท Mirai-style (41.216.189.236) ยท Whisper (31.170.22.205)
Architecturesm68k ยท armv5 ยท armv6 ยท arm7 ยท arm8/aarch64 ยท i386/i686 ยท x86_64 ยท riscv ยท loongarch64 (9)
SpanMotorola 68000 (1979) โ†’ RISC-V / LoongArch64 (2020s)
MaintainedRedTail matrix rebuilt between 2026-07-09 and 07-19 (distinct per-arch hashes); riscv added
Blind spotredtail.riscv scored severity 0; whisper ARM ELFs mislabelled 'Windows API dropper'
Turf warclean.sh strips competitor cron/rc persistence, disables c3pool_miner, truncates rival binaries
Cross-linksTI-2026-097A ยท TI-2026-097B ยท TI-2026-037C
Methodhoneypot_downloads / honeypot_sample_analysis โ€” no SQL; captured, not executed
ConfidenceHIGH (matrix, rebuild, clean.sh); MEDIUM (forward-positioning + evasion inference)

Cristian Liศ™neanu ยท shuffle-on.com ยท Threat Intelligence

โš  Personal capacity. Research published independently โ€” not reflecting employer views. Derived from passive observation of attacks against personal infrastructure. Full disclaimer โ†’
โ† Previous Reading the Drop โ€” 3 / 3 Next โ†’