Docker łata krytyczną lukę „DockerDash” w Ask Gordon AI: od metadanych obrazu do wykonania narzędzi i wycieku danych

securitybeztabu.pl 1 dzień temu

Wprowadzenie do problemu / definicja luki

Docker załatał krytyczną podatność dotyczącą Ask Gordon (wbudowanego asystenta AI w Docker Desktop i Docker CLI), która pozwalała atakującemu „przemycić” złośliwe instrukcje w metadanych obrazu kontenera (np. w polach LABEL Dockerfile). Gdy użytkownik pytał Ask Gordon o taki obraz, agent mógł potraktować metadane jak polecenia, przekazać je dalej do warstwy pośredniej (MCP Gateway) i doprowadzić do uruchomienia narzędzi lub wycieku danych.

W skrócie

  • Nazwa/codename: DockerDash
  • Wektor: złośliwe instrukcje zaszyte w metadanych obrazu (np. LABEL) lub metadanych repozytorium w ekosystemie Docker (wariant prompt injection).
  • Skutek: ryzyko wykonania operacji przez narzędzia powiązane z agentem (w praktyce „RCE przez łańcuch agentowy”) i/lub eksfiltracji wrażliwych informacji.
  • Status: naprawione w Docker Desktop 4.50.0 (łatki obejmują oba opisane scenariusze).

Kontekst / historia / powiązania

Ask Gordon to asystent AI dostępny w Docker Desktop i Docker CLI (funkcja wciąż opisywana jako beta w dokumentacji), mający ułatwiać pracę z Dockerem i ekosystemem narzędzi.

W praktyce jest to klasyczny przykład nowej klasy ryzyk: agent + narzędzia + kontekst z zewnątrz. jeżeli agent bezkrytycznie ufa danym wejściowym (tu: metadanym obrazu/repozytorium), a następnie ma możliwość uruchamiania narzędzi, powstaje „most” przez granice zaufania.

Wątek prompt injection w Ask Gordon pojawiał się już wcześniej: Pillar Security opisało scenariusz „zatruwania” metadanych repozytorium (Docker Hub), który mógł prowadzić do przejęcia zachowania asystenta i wycieku danych.

Analiza techniczna / szczegóły luki

Mechanika ataku (wariant „metadane obrazu → MCP Gateway → narzędzie”)

W opisywanym łańcuchu ataku najważniejsze są trzy elementy:

  1. Nośnik instrukcji – atakujący publikuje obraz Dockera zawierający „uzbrojone” metadane, np. w polach LABEL w Dockerfile.
  2. Interpretacja przez agenta – użytkownik prosi Ask Gordon o analizę/wyjaśnienie obrazu; agent pobiera metadane i nie odróżnia zwykłego opisu od wstrzykniętych poleceń.
  3. Egzekucja przez narzędzia – zinterpretowane instrukcje trafiają do MCP Gateway (warstwa pośrednia między agentem a serwerami/narzędziami MCP). Błąd polega na tym, iż polecenia przechodzą „po linii zaufania” i mogą skutkować uruchomieniem narzędzi z uprawnieniami użytkownika (lub przynajmniej wyciekiem danych dostępnym w kontekście środowiska).

Co zostało zmienione w poprawkach

Według opisu poprawek i omówień, Docker wdrożył mechanizmy ograniczające nadużycia: m.in. wymaganie potwierdzenia przed uruchomieniem narzędzi (MCP tools) oraz blokady pewnych ścieżek eksfiltracji.

Praktyczne konsekwencje / ryzyko

Najważniejszy wniosek: to nie jest „tylko prompt injection w czacie”. To podatność łańcuchowa, w której:

  • zaufana czynność (pytanie o obraz/komendę) uruchamia analizę,
  • analiza konsumuje niezaufany kontekst (metadane z obrazu/repozytorium),
  • a agent ma „ręce i nogi” w postaci narzędzi (MCP), które mogą wykonać działania w systemie lub pobrać i wynieść dane.

W środowiskach firmowych ryzyko rośnie, bo Docker Desktop/CLI często mają dostęp do:

  • rejestrów i tokenów (PAT), zmiennych środowiskowych, konfiguracji,
  • prywatnych obrazów i logów (np. build, debug),
  • artefaktów w repozytoriach oraz sieci firmowej (ruch wychodzący).

Rekomendacje operacyjne / co zrobić teraz

  1. Zaktualizuj Docker Desktop i Docker CLI do wersji zawierającej poprawki (co najmniej 4.50.0) – to najszybsza redukcja ryzyka.
  2. Jeśli AI-asystent nie jest wymagany: wyłącz Ask Gordon lub ogranicz jego użycie do środowisk testowych (szczególnie na stacjach z dostępem do sekretów).
  3. Ogranicz narzędzia MCP:
    • usuń/wyłącz zbędne integracje,
    • wymagaj potwierdzeń dla uruchomień narzędzi (po aktualizacji sprawdź polityki/ustawienia).
  4. Higiena supply chain:
    • nie analizuj „cudzych” obrazów bez sandboxa,
    • pinuj obrazy po digest, stosuj polityki dopuszczania rejestrów,
    • skanuj obrazy (SCA/SBOM) i stosuj zasady provenance, gdzie to możliwe.
  5. Ogranicz eksfiltrację: kontrola egress (proxy, firewall), DLP dla kluczowych stacji, minimalizacja sekretów w zmiennych środowiskowych.

Różnice / porównania z innymi przypadkami

  • Klasyczne podatności w kontenerach (np. ucieczka z kontenera) zwykle wynikają z błędów w runtime/daemonie. Tu problem jest inny: AI agent staje się „parserem poleceń” dla danych, które miały być opisem.
  • To także krok dalej niż typowy prompt injection: stawką nie jest odpowiedź modelu, tylko uruchomienie narzędzia (agentic/tool-enabled LLM).

Podsumowanie / najważniejsze wnioski

DockerDash pokazuje, iż wbudowane asystenty AI w narzędziach deweloperskich realnie poszerzają powierzchnię ataku supply chain: metadane i opisy, dotąd „pasywne”, mogą stać się aktywnym wektorem wpływu na zachowanie agenta.

Najważniejsze działania to aktualizacja do wersji z poprawkami, ograniczenie automatyzacji uruchamiania narzędzi oraz twarde zasady pracy z obrazami z zewnętrznych źródeł.

Źródła / bibliografia

  1. The Hacker News – opis podatności i wektora przez metadane (LABEL), informacja o poprawkach w 4.50.0 (The Hacker News)
  2. Noma Security / Noma Labs – analiza DockerDash i łańcuchów ataku (noma.security)
  3. SecurityWeek – omówienie roli MCP Gateway i efektów (RCE/wyciek), kontekst poprawek (SecurityWeek)
  4. Pillar Security – prompt injection przez metadane repozytorium (Docker Hub) (pillar.security)
  5. Docker Docs – dokumentacja Ask Gordon (kontekst funkcji i dostępności) (Docker Documentation)
Idź do oryginalnego materiału