Een vermoedelijk geavanceerde dreigingsactor is waargenomen bij het misbruiken van een beveiligingslek in Fortinet FortiOS om een eerder niet-gerapporteerde, in het geheugen verblijvende ARM64-malware te leveren, bekend als PEERSTITCH.
De aanval maakt gebruik van CVE-2025-61624 (CVSS-score: 5.4), een path traversal-zwakte in de commandoregelinterpreter van FortiOS, FortiPAM, FortiProxy en FortiSwitchManager, die een geprivilegieerde aanvaller in staat kan stellen om willekeurig te schrijven of bestanden te verwijderen via specifiek opgestelde argumenten voor bestaande commando’s. Fortinet bracht in april 2026 een patch uit voor deze kwetsbaarheid.
“PEERSTITCH laat geen persistent binaire op schijf achter, opent geen luisterende poorten en initieert geen uitgaande netwerkverbindingen,” zeiden Palo Alto Networks Unit 42-onderzoekers Daniel Gott en Shawn Westfall. “In plaats daarvan communiceert het via verkeer dat door legitieme processen op het geïnfecteerde systeem wordt gegenereerd, wat de malware bestand maakt tegen conventionele endpoint- en netwerkdetectie.”
Het cybersecuritybedrijf verklaarde dat het de activiteit ontdekte als onderdeel van een langdurige netwerkcompromittering van een telecom managed service provider die plaatsvond in september 2024. De meerfasige netwerkcompromittering wordt gevolgd onder CL-STA-0954 (ook bekend als UNC5820), waarbij initiële toegang werd verkregen door misbruik van een kritieke Fortinet FortiManager-zwakte met de bijnaam FortiJump (CVE-2024-47575).
Na een succesvolle compromittering van het appliance zouden de aanvallers een archief hebben geëxfiltreerd met daarin draaiende configuraties, cryptografisch materiaal en databasebestanden met informatie over meer dan 500 beheerde FortiGate-firewalls. Enkele van de geoogste gegevens zijn hieronder opgesomd –
- Het serienummer van het FortiManager-appliance zelf en de beheerrelaties met elk ingeschreven apparaat
- Draaiende configuratiebestanden voor meer dan 500 beheerde FortiGate-firewalls binnen interne infrastructuur en klantnetwerken
- Centrale management SQLite-databases
- Een inventaris met meer dan 500 FortiGate-serienummers samen met hun respectieve publieke IP-adressen
- Interne netwerktopologiemaps, routingtabelen en interfaceconfiguraties
- Gecodeerde administratieve, lokale en SSL/VPN-referenties
- Gecodeerd cryptografisch vertrouwensmateriaal, inclusief publieke certificaten en private sleutels
De gestolen informatie werd vervolgens gebruikt voor netwerkverkenning, het vestigen van langdurige toegang, het afluisteren van netwerkverkeer, het opzetten van ongeautoriseerde FortiGate SSL/VPN-sessies naar perimeterfirewalls, het inzetten van backdoors en het misbruiken van een aparte privilege-escalatie-kwetsbaarheid (namelijk CVE-2025-61624) om PEERSTITCH te implementeren.
De malware is een 64-bit Linux ARM64-uitvoerbaar bestand geschreven in C. Het bevat een auto-script dat is ontworpen om vijf componenten van een externe server (“23.240.77[.]233:8085”) te downloaden –
- pM.js, een script voor het voorbereiden van de omgeving (zelfverwijderend)
- a.js (opgeslagen als index.js), een Emscripten JavaScript-runtimemodule
- a.wasm (opgeslagen als index.wasm), een gecompileerde WebAssembly-binaire module
- b.js (opgeslagen als ipssem.js), een deployment-orchestratorscript
- dd (opgeslagen als lldprx), een native ARM64 ELF-binaire injector (de kern van PEERSTITCH)
De hoofd Fase van de aanval begint na een uitvoeringsvertraging. De orchestrator (“ipssem.js”) start “lldprx”, dat vervolgens dient als een injector die procesgeheugen aanpast en zich richt op twee kern-daemons van FortiOS: “/bin/miglogd” en “/bin/iked”.
Concreet lokaliseert het de draaiende processen die bij de twee daemons horen, somt hun geheugenuitsnede op, hecht zich eraan met behulp van ptrace en onderbreekt hun uitvoering via PTRACE_INTERRUPT, reserveert uitvoerbaar geheugen en schrijft er kwaadaardige code in, en leidt vervolgens de uitvoering om via de geïnjecteerde code.
Het uiteindelijke doel van deze hooking-stap is het creëren van een “verborgen, in het geheugen verblijvende communicatiebrug” tussen de twee legitieme FortiOS-processen in plaats van gebruik te maken van een conventionele netwerkverbinding of een bestand, en ze als dekmantel te gebruiken om detectie te omzeilen.
Specifiek is de miglogd-hook uitgerust om een marker te herkennen in de gegevens die het door het proces verwerkt. Dit omvat twee specifieke markers –
- TCP-poortmarker – 8550 (ingebed binnen verkeersgegevens, geen luisterende poort)
- IP-adresmarker – 169.254.0.1 (link-local identificator gebruikt voor patroonherkenning)
Zodra dit patroon wordt geïdentificeerd, geeft het het bijbehorende sessietoken of identificator door aan de iked-daemon, waarvan de hook later naar die identificator zoekt bij het afhandelen van daaropvolgende VPN-sessies. Als een dergelijke tag aanwezig is binnen de injectiebuffer van die VPN-sessie, volgt het een alternatieve uitvoeringsroute en omzeilt het de standaard FortiOS-beveiligingscontroles.
Met andere woorden veranderen de hooks die in de twee FortiOS-processen zijn geïnjecteerd hoe de VPN-daemon bepaalde sessies verwerkt.
Naast het inzetten van PEERSTITCH zijn de aanvallers ook waargenomen bij het opzetten van een afzonderlijk command-and-control (C2) kanaal door gebruik te maken van de native Apache “mod_md”-module op FortiGate-firewalls om een op SSH gebaseerde reverse shell te starten.
“De aanvallers imiteerden ook het FortiManager-platform om van beheerde firewalls van andere hosts in het doelnetwerk te pullen,” zeiden de onderzoekers. “De aanvallers toonden vaardigheid in Fortinet-appliancearchitectuur, FortiOS-internals en FortiOS-beheerprotocollen.”
Hoewel niet definitief, wordt vermoed dat de aanvallers mogelijk andere lekken zoals CVE-2024-26009 en CVE-2024-26008 hebben misbruikt om deze taken uit te voeren. Unit 42 benadrukte echter dat het misbruiken van deze kwetsbaarheden vereist dat het apparaat is ingeschreven in FortiGate Cloud/FortiCloud SSO, wat geen van de getroffen firewalls het geval bleek te zijn.
Bovendien is vastgesteld dat CL-STA-0954 verschillende maatregelen nam om forensische sporen te verwijderen, door onder meer het beëindigen van syslog-generatie, het wissen van crashlogs, het verstoren van logging-telemetrie en het automatisch verwijderen van kwaadaardige beheerdersaccounts en auto-script-objecten na uitvoering.
“Deze inbreuk benadrukt een groeiende dreiging: de bewapening van gecentraliseerde edge-managementecosystemen om downstream-netwerken te compromitteren,” zei Unit 42. “De ontdekking van de PEERSTITCH-implantaat toont de toenemende technische volwassenheid van malware gericht op edge-apparaten aan.”
“Door te opereren als een eenmalige injector, het vermijden van persistente disksporen en het opbouwen van een verborgen inter-process-communicatiebrug in het procesgeheugen, bereikten de aanvallers duurzame persistentie terwijl ze traditionele monitoring ontweken.”
