Strona główna / Blog / Cochise: 3.7 → prompt injection

Blog · analiza

Cochise CVE-2026-90623: CVSS 3.7 za brak host-key validation, ale pierwotny report pokazuje łańcuch MITM/target output → prompt injection → second-stage RCE

CVE-2026-90623 ma CVSS 3.7 i formalnie opisuje niewłaściwą walidację host key/certyfikatu w projekcie Cochise. Patrząc tylko na rekord, wygląda to jak wąski problem SSH wymagający złożonego MITM. Pierwotny report pokazuje jednak szerszy kontekst: Cochise jest agentem pentestowym opartym na LLM; według issue #13 asyncssh.connect() jest wołane z known_hosts=None, a surowy output sesji SSH trafia do kontekstu modelu bez sanitizacji/taint marking. To nie pojedynczy bug, lecz dwa elementy, które mogą spotkać się w jednym łańcuchu.

CVE primitive (CVSS 3.7): known_hosts=None → brak weryfikacji tożsamości serwera SSH (akceptacja hosta atakującego / MITM).
Researcher chain: output SSH (w tym tekst kontrolowany przez target) → kontekst LLM bez policy gate → wygenerowana akcja → wykonanie.

Primitive kontra chain

Formalny rekord dotyczy host-key verification. Report opisuje dodatkowo drugą klasę ryzyka: unsanitized target output wpływający na model. Zapis poprawny: CVE primitive — brak weryfikacji host key; researcher-described chain — prymitywa ułatwia dostarczenie nieufnego outputu do agenta, który podejmuje działania; pełny chain — wymaga dodatkowych warunków (zachowanie modelu, execution layer). Takie rozdzielenie zapobiega nadmiernemu claimowi. To już nie MITM → odczyt/zamiana danych, lecz potencjalnie MITM → wstrzyknięcie instrukcji do modelu → tool/action execution.

Dlaczego to ważne dla VM

Tradycyjny system priorytetyzuje CVSS 3.7 → Low → później. Agentowy wymaga pytań kontekstowych: czy narzędzie łączy się z hostami, którym nie ufa; czy pracuje w sieci podatnej na MITM/DNS manipulation; czy output hosta trafia bezpośrednio do modelu; czy model może uruchamiać kolejne komendy automatycznie; czy agent ma dostęp do lokalnych/produkcyjnych credentials; czy execution odbywa się na celu czy na stacji operatora; czy jest human approval. Dopiero odpowiedzi tworzą environmental severity. Publiczny exploit/report nie jest dowodem exploitation in the wild — status: public researcher reproduction tak, CVE assigned tak, active exploitation brak potwierdzenia.

Controls i testy remediation

Bez wiarygodnego fixed release VE może zamknąć część attack path: przywrócenie strict host-key verification, pinning/known_hosts dla środowisk testowych, wyłączenie auto-akceptacji nowych kluczy, oddzielanie raw tool output od instruction context, sandbox wykonania, brak automatycznego local execution, allowlista tooli i argumentów, human confirmation dla high-impact actions, izolowany profil operatora bez szerokich credentials — każdy control odpowiada konkretnej krawędzi attack graph. Testy: host identity (kontrolowany SSH endpoint z innym kluczem → agent przerywa połączenie); prompt boundary (zdalny host zwraca tekst-instrukcję → model może go zobaczyć jako dane, ale execution layer nie wykonuje niedozwolonej operacji); autonomous execution (po nieufnym output agent nie wykonuje akcji bez policy gate); credential blast radius (agent w docelowym profilu bez zbędnych cloud/SSH/CI credentials). Verification dowodzi, że zamknięte są zarówno identity boundary SSH, jak i instruction/action boundary agenta.

Powiązane na blogu

Źródła

Nota redakcyjna: stan informacji 14 września 2026. CVE-2026-90623 (Cochise, CVSS 3.7) opisuje brak host-key validation; report łączy to z nieufnym output SSH trafiającym do kontekstu LLM. Pełny chain wymaga dodatkowych warunków; brak potwierdzenia active exploitation. Artykuł rozdziela primitive od chainu, by uniknąć nadmiernego claimu.

Zapamiętaj jedno

CVSS ocenia konkretny rekord, nie to, że po drugiej stronie SSH siedzi agent LLM, który może interpretować output jako kontekst do kolejnych działań. Do findingu w agentic infra dołącz: identity verification, tool-output trust, LLM instruction boundary, execution capability, human/policy gate i credential blast radius.