
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:
- Nośnik instrukcji – atakujący publikuje obraz Dockera zawierający „uzbrojone” metadane, np. w polach LABEL w Dockerfile.
- 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ń.
- 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
- Zaktualizuj Docker Desktop i Docker CLI do wersji zawierającej poprawki (co najmniej 4.50.0) – to najszybsza redukcja ryzyka.
- 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).
- Ogranicz narzędzia MCP:
- usuń/wyłącz zbędne integracje,
- wymagaj potwierdzeń dla uruchomień narzędzi (po aktualizacji sprawdź polityki/ustawienia).
- 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.
- 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
- The Hacker News – opis podatności i wektora przez metadane (LABEL), informacja o poprawkach w 4.50.0 (The Hacker News)
- Noma Security / Noma Labs – analiza DockerDash i łańcuchów ataku (noma.security)
- SecurityWeek – omówienie roli MCP Gateway i efektów (RCE/wyciek), kontekst poprawek (SecurityWeek)
- Pillar Security – prompt injection przez metadane repozytorium (Docker Hub) (pillar.security)
- Docker Docs – dokumentacja Ask Gordon (kontekst funkcji i dostępności) (Docker Documentation)
















