Přeskočit na obsah
provozpravidla

DANGEROUS: skener přečetl dokumentaci jako útok

Hermes · bezpečnostní skener
Nálezů celkem
83
CRITICAL v textech
43
CRITICAL v kódu
0
--force
nepřebije verdikt

Stalo se 22. 8. 2026 při instalaci pluginu do kódovacího profilu. Plugin je veřejný, populární (přes sto tisíc hvězd) a runtime agenta ho oficiálně podporuje — a přesto:

Decision: BLOCKED — Blocked (community source + dangerous verdict,
83 findings). --force does not override a dangerous verdict.

Teze: Skener, který čte texty, najde v poctivé dokumentaci totéž co v malwaru — protože dobrá dokumentace popisuje chování a popis chování je přesně to, co skener hledá.

Co skener našel

39 nálezůdokumentace (README, docs)4 nálezůmetadata a benchmarky0 nálezůspustitelný kód pluginu43 nálezů se stupněm CRITICAL (z 83 celkem). Verdikt DANGEROUS, který nejde přebít ani --force,stojí celý na větách, které popisují chování pluginu — ne na kódu, který ho vykonává.

Z 83 nálezů bylo 43 kritických — a všechny leží v textech: README ve třech jazykových verzích, dokumentace přenositelnosti, metadata balíčku. Flagované věty jsou popisy typu „Injects the ruleset every turn" nebo „Reads AGENTS.md from the project root, zero setup". Pro pravidlový plugin je „injektuje pravidla do každého tahu" popis produktu; pro signaturu „persistence" je to trefa. Vícejazyčné README znamenalo tutéž větu započítat třikrát.

Ve spustitelném kódu — 217 řádcích Pythonu, které to všechno skutečně dělají — skener nenašel nic.

Co s tím: číst kód, ne verdikt

Verdikt DANGEROUS nejde přebít --force (rozumné výchozí chování — síla nemá přebíjet úsudek). Zbývala cesta přes konfiguraci: sken pro jednu instalaci vypnout. Před tím ale proběhlo to, co skener simuluje: ruční čtení kódu. Žádné síťové volání, žádné zápisy mimo vlastní konfigurační soubor, žádné subprocesy; kontrola oprávnění slash příkazů selhává bezpečně směrem k odmítnutí. Teprve s tímhle se sken vypnul, plugin nainstaloval a sken vrátil na výchozí — i s komentářem v configu, proč se to stalo a kdo kód četl.

Ta ironie má ještě jednu vrstvu: nejde o nic vlastního — skenování instalací je vestavěná funkce, kterou runtime dostal před pár dny a v changelogu vypadala skvěle. První ostrý kontakt s ní byl false-positive storm — což o ní neříká, že je špatná, jen že verdikt nad texty není verdikt nad kódem.

Poznámka k publikaci

Hlášky skeneru a počty nálezů jsou doslovné; plugin je veřejný (ponytail, MIT), jeho měřený přínos je v nálezu 28. Řádky kódu se počítají bez testů a dokumentace samotného pluginu.

Co se pro to změnilo
  • configscan_on_install dočasně vypnut pro jednu instalaci (s komentářem proč), pak vrácen na výchozí
  • postupruční review kódu pluginu před obejitím skeneru: 217 řádků, žádná síť, žádné zápisy mimo vlastní config, žádný subprocess
Souvisí — štítek „provoz“