Decepticon: Role-boundary forgery via ChatML special-token literals in web crawl output composed into LLM context
Exploiteerbaarheid: geen exploit bekend. Blootstelling: niet internet-facing / geen bekende blootstelling. Gemeentelijke relevantie: geen match met de gemeentelijke context. Impact: alleen technische impact. Bronvertrouwen: middel.
Scorecomponenten
geen exploit bekend
niet internet-facing / geen bekende blootstelling
geen match met de gemeentelijke context
alleen technische impact
beperkt bevestigd
geen mitigatie bekend
Geen automatische bestuurlijke escalatie — operationeel op te volgen.
Prioriteit: monitoren
Aanbevolen reactietijd: monitoren
Monitoren (43/100) — monitoren. Bepalend: technische ernst (85/100) en gemeentelijke relevantie (47/100). Houd dit in de gaten; directe actie is nu niet nodig. Deze prioritering is regelgebaseerd en navolgbaar; weeg de aannames en onzekerheden mee voor de eigen gemeentelijke omgeving.
zeer hoog — De technische ernst is hoog: succesvol misbruik kan systemen of gegevens direct compromitteren.
laag — Er zijn geen concrete aanwijzingen voor misbruik.
midden — Dit kan gemeenten raken, afhankelijk van de eigen omgeving en leveranciers.
midden — Plan beoordeling en opvolging in; directe actie is nu niet vereist.
Positieve factoren
De dreiging raakt een leverancier of de toeleveringsketen; gemeenten zijn sterk afhankelijk van externe leveranciers.
Bron: Technologieherkenning in titel, samenvatting en labels
Negatieve factoren
De zekerheid is 'likely'; een onbevestigd signaal verlaagt de urgentie tot het is geverifieerd.
Bron: Zekerheidsinschatting van de radar
Aannames
Onzekerheden
Deze prioritering is regelgebaseerd en navolgbaar. Een CISO kan deze onderbouwing gebruiken richting directie of ICT-management; stem de opvolging af op de eigen gemeentelijke omgeving.
6 concrete acties verdeeld over 5 rol(len). Aanbevolen reactietijd: monitoren.
Taken voor CISO
Laat vaststellen of de getroffen component of het proces binnen de gemeente in gebruik is.
Bewijs vereist: Bevestiging in/uit gebruik door ICT-beheer.
Wijs per actie een eigenaar en deadline toe en bewaak dat de acties worden afgerond.
CISO
Laat vaststellen of de getroffen component of het proces binnen de gemeente in gebruik is.
Bewijs vereist: Bevestiging in/uit gebruik door ICT-beheer.
Wijs per actie een eigenaar en deadline toe en bewaak dat de acties worden afgerond.
ISO / patchmanagement
Controleer of een patch of mitigatie beschikbaar is en bepaal de deadline voor opvolging.
Bewijs vereist: Patch- of mitigatieoverzicht met versienummers.
ICT-beheer
Breng in kaart welke systemen, applicaties of accounts de kwetsbare component bevatten.
Bewijs vereist: Lijst van geraakte systemen uit de CMDB of inventaris.
Functioneel beheer
Controleer of de geraakte applicatie of koppeling extra aandacht nodig heeft.
Proceseigenaar
Beoordeel wat de dreiging betekent voor de continuiteit van het geraakte proces.
De acties zijn regelgebaseerd gegenereerd. Stem ze af op de eigen gemeentelijke omgeving en wijs per actie een eigenaar en deadline toe.
Relevante logbronnen
MITRE ATT&CK — tactieken
Huntingvragen
KQL-huntingqueries (Microsoft Sentinel)
Defender-waarschuwingen rond endpointcompromittatie
Toont waarschuwingen van Microsoft Defender for Endpoint met een hoge of gemiddelde ernst.
// Defender-waarschuwingen rond endpointcompromittatie
SecurityAlert
| where TimeGenerated > ago(7d)
| where ProductName == "Microsoft Defender for Endpoint"
| where AlertSeverity in ("High", "Medium")
| project TimeGenerated, AlertName, AlertSeverity, CompromisedEntity,
Description
| order by TimeGenerated descFalse positives: Beheertooling en pentests kunnen legitieme waarschuwingen genereren.
Indicators of compromise
Geen IOC's herkend in de openbare dreigingstekst. IOC's kunnen later via een threat-intelfeed worden aangevuld.
False-positive-aandachtspunten
Beoordeel afwijkingen in context; reguliere beheeractiviteit kan op een incident lijken.
Deze informatie is uitsluitend defensief: detectie en hunting. De KQL-queries zijn read-only en bedoeld voor Microsoft Sentinel.
Vragenlijst
E-mailonderwerp
Uitvraag kwetsbaarheid CVE-2026-61732 — reactie gevraagd
E-mailtekst
Geachte heer/mevrouw, Naar aanleiding van een beveiligingsmelding met kenmerk CVE-2026-61732 doet onze gemeente een uitvraag bij u als leverancier. Deze uitvraag dient ter verificatie en feitenvaststelling: wij willen vaststellen of en in welke mate de aan onze gemeente geleverde dienstverlening wordt geraakt. Het betreft mogelijk het product of onderdeel "decepticon-core". Wij verzoeken u de onderstaande vragen volledig en onderbouwd te beantwoorden en uw reactie binnen tien (10) werkdagen na ontvangst van dit bericht schriftelijk aan te leveren bij de informatiebeveiligingsfunctie van onze gemeente. Zijn bepaalde gegevens nog niet beschikbaar, dan ontvangen wij graag een tussentijdse terugkoppeling. Vragen: 1. Gebruikt u de kwetsbare component of het geraakte product? 2. Welke versies zijn bij u in gebruik? 3. Is de kwetsbaarheid van toepassing op de dienstverlening aan onze gemeente? 4. Is de kwetsbaarheid inmiddels gepatcht? 5. Zo ja, op welke datum is de patch doorgevoerd? 6. Zo nee, welke mitigerende maatregelen zijn genomen? 7. Is er actief misbruik van de kwetsbaarheid geconstateerd? 8. Is er logging of forensisch onderzoek uitgevoerd? 9. Is er sprake van een risico op een datalek? 10. Wanneer verwacht u een definitieve oplossing door te voeren? 11. Welke restrisico's blijven na de oplossing bestaan? 12. Welke communicatie mogen wij richting onze interne stakeholders gebruiken? Deze uitvraag is bedoeld om de feiten vast te stellen en gezamenlijk tot een passende opvolging te komen. Wij stellen uw tijdige medewerking op prijs. Met vriendelijke groet, [Naam] Namens de informatiebeveiligingsfunctie Gemeente [Gemeente]
Vul vóór verzending de afzender en gemeentenaam in. De tekst is zakelijk en gericht op feitenvaststelling; pas hem aan op de eigen situatie.
Deze dreiging raakt de onderstaande governance-thema's. Met de aanbevolen bewijsstukken kunt u aantonen dat het signaal is opgevolgd — bruikbaar voor BIO2, NIS2/CBW, ISMS en de ENSIA-verantwoording.
De dreiging wordt beoordeeld en geprioriteerd binnen het risicomanagement.
Aanbevolen bewijs: Score-uitleg en de gemaakte risico-afweging.
De dreiging en de opvolging ervan horen thuis in de periodieke rapportage aan het management en de directie.
Aanbevolen bewijs: Vermelding in de CISO- of directierapportage informatiebeveiliging.
De radar legt de beoordeling, prioritering en opvolging navolgbaar vast.
Aanbevolen bewijs: Scoringonderbouwing, actiekaart en statusgeschiedenis uit de radar.
De dreiging wordt meegewogen bij de evaluatie van de beheersmaatregelen (Check).
Aanbevolen bewijs: Beoordeling van de relevantie en eventuele vervolgacties.
Aantoonbare opvolging draagt bij aan de jaarlijkse ENSIA-verantwoording over de BIO.
Aanbevolen bewijs: Overzicht van opgevolgde dreigingen voor de ENSIA-zelfevaluatie.
## Summary Decepticon wraps web crawl results — the output of agent reconnaissance against target services — into LLM messages without neutralizing ChatML special-token literals. Under the BYOK (Bring Your Own Key) deployment model, users configure their own LLM credentials to any OpenAI-compatible endpoint. Most open-source and self-deployed model providers (vLLM, SGLang, Ollama, LM Studio, text-generation-webui, etc.) do not filter special-token literals from user content in their default configurations. Those literals are parsed into structural role-boundary token IDs, meaning an attacker string planted in a target web page forges a new operator turn the model treats as authoritative, bypassing Decepticon's agent guardrails and resulting in arbitrary command execution inside the Kali Linux sandbox. The vast majority of open-source and self-deployed model providers do not filter special-token literals. vLLM explicitly declined to fix this issue on 2026-04-21, closing it as "out of scope for the inference layer." Fix responsibility therefore falls squarely on the Agent application layer. OpenClaw completed an analogous fix on 2026-04-22 via commit `2514746b3261` (~30 lines, sanitizer applied just before tool-output wrapping), demonstrating the feasibility of application-layer mitigation. ## Applicability Confirmed vulnerable when Decepticon is configured with a BYOK OpenAI-compatible backend whose tokenizer preserves special-token IDs — vLLM / SGLang / TGI confirmed upstream. Not currently exploitable against hosted vendors (OpenAI, Anthropic, DashScope) who strip special-token literals server-side. However, this immunity is vendor-side behavior, not an architectural guarantee of Decepticon. The durable control is application-layer literal filtering or escaping. ## Affected - `PurpleAILAB/Decepticon` v1.1.4 (confirmed); not release-specific. - Backend: any model provider whose tokenizer preserves special-token IDs — confirmed on Qwen3.5-397B-A17B. - All 16 specialist agents share the same LLM context pipeline — the vulnerability spans the entire agent roster (recon, exploit, post-exploit, etc.). - Any chat template with ChatML / Qwen role delimiters. ## Affected code paths The vulnerability spans three layers — external data ingestion, LLM message composition, and command execution. All 16 specialist agents share this pipeline. ### 1. Reconnaissance & external data ingestion — `agents/standard/recon.py` The recon agent collects target intelligence via a suite of tools (`nmap`, `httpx`, `dnsx`, `masscan`, `katana`, `ffuf`, etc.). All tool outputs — including HTTP responses from target web servers — are captured as raw string content and returned to the agent loop: ```python # recon.py:85-100 — tool registration for external data collection kg_ingest_nmap_xml, # Nmap scan results kg_ingest_httpx_jsonl, # HTTP probe responses kg_ingest_dnsx, # DNS enumeration output kg_ingest_katana, # Web crawler output kg_ingest_masscan, # Mass port scan results kg_ingest_ffuf, # Directory brute-force output *BASH_TOOLS, # Arbitrary shell command execution ``` ### 2. LLM message composition — `llm/factory.py` LangChain's `ChatOpenAI` subclass wraps every LLM call through `ainvoke()`. The message list — containing system prompt, conversation history, and **raw, unsanitized tool outputs** — is passed directly to the LangChain LLM without any special-token stripping step: ```python # factory.py:733-742 — LLM invocation with raw tool output async def ainvoke(self, *args, **kwargs): try: return await call_with_timeout( super().ainvoke(*args, **kwargs), _resolve_llm_timeout_seconds(), ) except LLMTimeoutError: raise ``` Tool outputs returned to the agent are formatted as LangChain `ToolMessage` objects (role `"tool"`). When these messages are sent to the LLM in subsequent turns, ChatML literals embedded in the tool output — e.g. `<|im_start|>system` — are tokenized as structural role-delimiter token IDs, resolving to the actual `<|im_start|>` specia
Categorie 'ai_threat' op basis van trefwoord 'llm'. Severity 'critical' bepaald op basis van: bronlabel 'critical'. Confidence 'likely': gerenommeerd securityonderzoek (GitHub Security Advisories). Herkende leveranciers/producten: Linux.
Deze dreiging scoort 35/100 voor de gemeentelijke relevantie. Meegewogen: een hoge ernstinschaling en een leveranciers- of ketenrisico. Geraakte processen: Netwerk en infrastructuur, Leveranciersketen.
Bestuurlijke duiding
Deze dreiging is relevant voor de gemeente. AI-gedreven dreigingen vragen om bewustwording en aangepaste werkafspraken. De impact is beheersbaar mits de geadviseerde maatregelen tijdig worden opgevolgd. Laat de CISO de voortgang bewaken en escaleer richting directie zodra nieuwe signalen daartoe aanleiding geven.
Geraakte processen
Geraakte technologie
Betrokken rollen
CISO · ISO · SOC · ICT beheer · Leveranciersmanager
Concrete stappen voor ICT-beheer en het securityteam.
Dit zijn algemene handelingsperspectieven. Stem de opvolging af op de eigen omgeving en het ISMS van uw gemeente.
Deel geen vertrouwelijke of persoonsgegevens in dit formulier. Beschrijf je melding algemeen; gevoelige details horen niet op een publieke radar thuis.