Jak błąd w skrypcie GPT 5.3 Codex skasował cały dysk – i czego uczy to o bezpieczeństwie AI

Jak błąd w skrypcie GPT 5.3 Codex skasował cały dysk – i czego uczy to o bezpieczeństwie AI

Incydent, który wyczyścił cały dysk: co się właściwie wydarzyło

Historia jednego z użytkowników Reddita stała się w ostatnich dniach symbolicznym studium przypadku na temat ryzyk związanych z wykorzystaniem sztucznej inteligencji w środowiskach produkcyjnych. Programistyczny asystent oparty na modelu GPT 5.3 Codex miał przygotować prosty skrypt do usuwania katalogów tymczasowych Pythona o nazwie „__pycache__”. Z pozoru rutynowe zadanie administracyjne zakończyło się całkowitym wyczyszczeniem dysku, na którym wykonywano operację – klasycznym przykładem, jak jeden błąd w skrypcie AI może doprowadzić do utraty wszystkich danych.

Chronologia zdarzeń była pozornie niewinna. Użytkownik poprosił asystenta AI o wygenerowanie skryptu PowerShell, który miał przejść po wybranych katalogach i usunąć foldery „__pycache__”, aby zwolnić miejsce i uporządkować środowisko programistyczne. Model zaproponował gotowe polecenia, które wyglądały na poprawne i profesjonalne. Skrypt został skopiowany i uruchomiony bez pełnego audytu – w przekonaniu, że tak prosta operacja czyszczenia plików tymczasowych nie niesie większego ryzyka.

Po krótkim czasie właściciel komputera zaczął jednak zauważać, że znikają nie tylko katalogi tymczasowe. Zaczęły znikać całe foldery projektów, a następnie kolejne katalogi na dysku. Dopiero wtedy okazało się, że wygenerowany skrypt nie ograniczał się do usuwania „__pycache__”, ale de facto potraktował katalog główny bieżącego dysku jako punkt startowy do rekurencyjnego kasowania plików, co w praktyce oznaczało formatowanie całego środowiska roboczego.

Źródłem problemu okazał się jeden pozornie nieistotny detal – błędnie użyty odwrotny ukośnik w kontekście PowerShell oraz brak zabezpieczeń po stronie użytkownika i systemu. W relacji na Reddicie, którą następnie opisał m.in. dziennikarz technologiczny Jacob Fisher, podkreślono, że chodziło o prostą „literówkę” w obsłudze ścieżek, która w połączeniu z parametrami wyłączającymi potwierdzanie doprowadziła do całkowitej utraty danych, w tym krytycznych projektów i plików konfiguracyjnych.

Ten incydent jest cennym materiałem do analizy nie dlatego, że jest spektakularny czy sensacyjny, ale dlatego, że pokazuje, jak łatwo narzędzia AI mogą „wstrzelić się” w istniejące luki w infrastrukturze IT. Pokazuje też, że samo zaufanie do generowanego kodu, bez odpowiednich procedur kontrolnych, staje się realnym wektorem ryzyka bezpieczeństwa. Dalsza część artykułu koncentruje się na technicznym tle błędu oraz praktycznych wnioskach dla administratorów, zespołów DevOps i deweloperów korzystających z asystentów kodu.

Jak jeden odwrotny ukośnik zmienił ścieżkę w polecenie destrukcyjne

Sednem sprawy był sposób, w jaki skrypt PowerShell został wygenerowany i jak interpretator poleceń zrozumiał przekazane mu argumenty. Zamiast użyć natywnego polecenia PowerShell – takiego jak Remove-Item z odpowiednio zbudowanymi parametrami – model AI wygenerował wywołanie starego polecenia systemu Windows „rmdir” uruchamianego poprzez klasyczny wiersz poleceń (CMD).

W wygenerowanym kodzie pojawiła się próba tzw. „ucieczki znaków” (ang. escaping), czyli specjalnego zapisu cudzysłowów lub innych znaków tak, aby interpreter nie traktował ich jako elementów składni, lecz jako zwykłe znaki tekstu. Model użył do tego celu odwrotnego ukośnika „\”, co w wielu językach programowania oraz w powłoce CMD jest poprawne. W PowerShell konwencja jest jednak inna: domyślnym znakiem do ucieczki jest backtick („`”), a odwrotny ukośnik ma przede wszystkim funkcję separatora katalogów w ścieżkach.

W praktyce wyglądało to mniej więcej jak próba przekazania do CMD komendy typu „rmdir /S /Q \ścieżka\do\folderu”. Oczekiwanie było takie, że polecenie usunie konkretne katalogi tymczasowe w drzewie projektu. Jednak z powodu błędnej kombinacji cudzysłowów, odwrotnych ukośników i sposobu, w jaki argumenty były interpretowane po przejściu z PowerShell do CMD, część ścieżki została zredukowana do odniesienia do katalogu głównego dysku, a skrypt zaczął działać jak polecenie masowego usuwania danych.

Interpretacja ścieżki to proces, w którym powłoka decyduje, jak rozumieć ciąg znaków opisujący lokalizację pliku lub katalogu. Jeśli przez pomyłkę powstanie ścieżka zaczynająca się od znaku oznaczającego katalog główny bieżącego dysku (np. „C:\”), system uzna, że należy zacząć operację od najwyższego poziomu hierarchii plików. W połączeniu z parametrami typu „/S” (rekurencyjne usuwanie podkatalogów) oraz „/Q” (brak pytań o potwierdzenie), efekt jest oczywisty: wszystko, co znajduje się pod wskazanym katalogiem, jest usuwane automatycznie.

Rekurencyjne usuwanie oznacza, że polecenie nie zatrzymuje się na pierwszym katalogu, ale przechodzi przez całe drzewo katalogów, kasując kolejne pliki i foldery według zadanego wzorca. W tym przypadku wzorcem okazał się nie katalog z tymczasowymi plikami Pythona, ale w praktyce cały dysk. Jedna pomyłka w sposobie „uciekania” cudzysłowów sprawiła, że interpreter odczytał ścieżkę jako absolutną ścieżkę od katalogu głównego, a nie względną lokalizację wybranych folderów, co przełożyło się na pełne wyczyszczenie środowiska.

Ten typ błędu jest charakterystyczny dla sytuacji, w których mieszają się różne powłoki i style składni – w tym przypadku PowerShell i klasyczny CMD. AI wygenerowała hybrydowe rozwiązanie, które syntaktycznie wyglądało wiarygodnie, ale semantycznie było niebezpieczne. Dla mniej doświadczonego użytkownika wszystko mogło wyglądać jak standardowy, „profesjonalny” skrypt porządkujący katalogi, który nie budzi podejrzeń, choć w rzeczywistości był to destrukcyjny skrypt kasujący dane.

Słabe punkty środowiska: PowerShell, CMD i brak bezpiecznych domyślnych ustawień

Kluczowe pytanie brzmi: dlaczego taki błąd w ogóle był możliwy do wykonania i dlaczego system nie zareagował dodatkowymi zabezpieczeniami? Po pierwsze, zamiast nowoczesnych i bardziej odpornych na błędy cmdletów PowerShell wykorzystano stare polecenie „rmdir” z powłoki CMD. To narzędzie zaprojektowane w czasach, gdy standardy bezpieczeństwa operacji na plikach były znacznie mniej restrykcyjne niż dziś, a kwestie bezpieczeństwa AI i automatyzacji nie istniały.

Po drugie, klasyczny wiersz poleceń systemu Windows wykazuje niską odporność na subtelne błędy w interpretacji ścieżek. Literówka, brak cudzysłowu czy nieprawidłowy znak ucieczki mogą spowodować, że stało się coś zupełnie innego, niż zamierzał użytkownik. W opisywanym przypadku niewielka rozbieżność w tym, jak PowerShell i CMD rozumieją odwrotny ukośnik i cudzysłowy, zamieniła operację porządkowania folderów tymczasowych w polecenie usunięcia całego katalogu głównego z wszystkimi projektami i danymi użytkownika.

Trzecim elementem układanki były parametry wyłączające interaktywne potwierdzanie usuwania. Flagi w rodzaju „/Q” w CMD czy „-Force” i „-Recurse” w PowerShell są bardzo wygodne w automatyzacji, ale usuwają z procesu kluczowy bufor bezpieczeństwa: pytanie „czy na pewno chcesz usunąć ten katalog?”. W efekcie, gdy skrypt zaczął działać niezgodnie z intencją, system nie poprosił o dodatkowe potwierdzenie, tylko konsekwentnie realizował zadaną instrukcję, co przy skryptach generowanych przez AI jest szczególnie ryzykowne.

Czwarty problem to brak dodatkowych bezpieczników na poziomie systemu i organizacji. W wielu środowiskach produkcyjnych nie istnieje domyślna „whitelista” katalogów, z których wolno masowo usuwać dane, ani wymóg podwójnego potwierdzenia operacji destrukcyjnych wykonywanych z poziomu katalogu głównego. System operacyjny zakłada niejako, że operator wie, co robi, i nie wprowadza twardych ograniczeń, które mogłyby zapobiec skutkom błędnej komendy – szczególnie, gdy pochodzi ona z asystenta kodu.

Nie jest to więc wyłącznie „problem AI”. Sztuczna inteligencja wygenerowała skrypt, który wpasował się w istniejące, od lat znane słabości ekosystemu: mieszanie starych narzędzi z nowymi, brak bezpiecznych ustawień domyślnych, szerokie uprawnienia i brak walidacji ścieżek. Można powiedzieć, że AI zachowała się jak bardzo zdolny stażysta, który otrzymał dostęp do systemu produkcyjnego bez odpowiedniego nadzoru. Sam stażysta nie jest „zły”, ale środowisko jest nieprzygotowane na jego błędy – a to klasyczna recepta na poważny incydent bezpieczeństwa.

Ten obraz staje się jeszcze ważniejszy w kontekście pojawiających się autonomicznych agentów AI, które potrafią orkiestrować złożone sekwencje działań systemowych. W artykule o strategii autonomicznych agentów i zmianach dla biznesu zwracaliśmy uwagę, że wzrost autonomii systemów musi iść w parze z rozwojem mechanizmów kontrolnych. Opisywany incydent pokazuje, że nawet przy relatywnie prostym zadaniu czyszczenia folderów brak takich mechanizmów prowadzi do poważnych konsekwencji dla ciągłości działania biznesu.

Rola człowieka w pętli: dlaczego „vibecoding” jest groźny poza środowiskiem testowym

Na popularności zyskuje zjawisko określane jako „vibecoding” – korzystanie z kodu generowanego przez AI głównie na podstawie ogólnego odczucia, że „wygląda dobrze” i „powinien działać”, bez dogłębnej analizy każdego wiersza. W warunkach presji czasowej wielu programistów i administratorów traktuje asystentów kodu jak quasi-autonomicznych współpracowników, których sugestie można kopiować do terminala niemal bezrefleksyjnie, często bez podstawowego code review.

Historia skasowanego dysku pokazuje, jak ryzykowne jest takie podejście. Nawet pozornie proste zadanie – usuwanie tymczasowych folderów „__pycache__” – może mieć destrukcyjny charakter, jeśli zostanie zrealizowane przy użyciu niewłaściwych poleceń i parametrów. Dla użytkownika, który nie jest ekspertem od subtelności składni PowerShell i CMD, skrypt wygenerowany przez GPT 5.3 Codex mógł wyglądać w pełni profesjonalnie. Problem polega na tym, że modele językowe są bardzo dobre w generowaniu „wiarygodnie brzmiącego” kodu, ale nie gwarantują jego poprawności ani bezpieczeństwa, zwłaszcza w kontekście operacji na plikach.

W praktyce konieczne jest stosowanie kilku prostych, lecz konsekwentnych zasad. Po pierwsze, każdy skrypt generowany przez AI powinien być przeglądany linia po linii, z jasnym zrozumieniem, co robi każda komenda – szczególnie jeśli zawiera polecenia typu Remove-Item, rm czy rmdir. Po drugie, pierwsze uruchomienie powinno odbywać się w środowisku testowym (sandbox), które jest odseparowane od systemów produkcyjnych i nie zawiera krytycznych danych. Po trzecie, warto stosować zasadę minimalnych uprawnień – konto, na którym uruchamiane są skrypty, nie powinno mieć możliwości usuwania systemowych czy produkcyjnych katalogów. Po czwarte, absolutnym fundamentem jest działający i regularnie testowany system kopii zapasowych, który pozwoli na odtworzenie danych po każdym incydencie.

Pojęcie „człowieka w pętli” (human in the loop) oznacza, że to człowiek zachowuje ostateczną kontrolę nad decyzjami podejmowanymi przez systemy AI, szczególnie w obszarach, gdzie skutki błędów są trudne do odwrócenia. W przypadku operacji destrukcyjnych – takich jak usuwanie plików, modyfikacja konfiguracji czy deploy na produkcję – pełne wyeliminowanie człowieka z procesu jest na obecnym etapie rozwoju technologii po prostu nieodpowiedzialne i stoi w sprzeczności z podstawowymi praktykami bezpieczeństwa.

Dodatkowym wyzwaniem jest to, że modele językowe są bardzo wrażliwe na detale promptu, czyli instrukcji podawanej użytkownikowi. Niewielka zmiana sformułowania może prowadzić do zupełnie innego rozwiązania – od bezpiecznego użycia cmdletu PowerShell po niebezpieczną kombinację z CMD. W jednym z naszych tekstów, o wpływie drobnych zmian promptu na odpowiedzi modeli, pokazujemy, jak trudno jest przewidzieć zachowanie modelu dla laika. To kolejny argument za tym, by nie traktować asystentów kodu jako nieomylnych „czarodziejów”, lecz jako narzędzia, które wymagają świadomego nadzoru i dojrzałego podejścia do AI w programowaniu.

Lekcje dla administratorów i zespołów DevOps: jak bezpiecznie integrować AI z produkcją

Opisany incydent dostarcza szeregu praktycznych wniosków dla zespołów odpowiedzialnych za infrastrukturę i operacje. Po pierwsze, warto przemyśleć, jak projektowane są zadania delegowane asystentom AI. Zamiast mieszać stare narzędzia CMD z PowerShellem, należy preferować natywne cmdlety PowerShell, które lepiej radzą sobie z obsługą ścieżek, typów danych i wyjątków. Ścieżki powinny być jawnie definiowane, a odwołania do katalogu głównego (np. „C:\”) w ogóle niedopuszczalne w skryptach do czyszczenia zasobów i automatyzacji utrzymania.

Po drugie, polityki bezpieczeństwa powinny uwzględniać specyfikę pracy z AI. W praktyce oznacza to stosowanie dedykowanych kont serwisowych o ograniczonych uprawnieniach, blokowanie możliwości usunięcia krytycznych katalogów na poziomie systemu plików oraz konfigurowanie polityk wykonania skryptów (Execution Policy) tak, aby nie można było uruchomić niepodpisanego kodu wrażliwym kontekście. Bardzo ważne jest też szczegółowe logowanie i audyt, które pozwolą odtworzyć przebieg zdarzeń w razie incydentu i lepiej ocenić ryzyka związane z AI.

Po trzecie, proceses pracy z AI powinny obejmować standardowe praktyki inżynierskie. Każdy skrypt wygenerowany przez model powinien przejść code review – nawet jeśli jest krótki i dotyczy „tylko” sprzątania plików tymczasowych. Warto stosować wewnętrzne checklisty przed wdrożeniem, zawierające pytania: czy skrypt zawiera polecenia usuwania? czy był uruchamiany w środowisku testowym? czy istnieje plan szybkiego wycofania zmian? czy dane z produkcji są odpowiednio zabezpieczone backupem? czy skrypt jest zgodny z firmowymi wytycznymi bezpieczeństwa AI?

Po czwarte, fundamentem odporności organizacji pozostaje strategia backupu i disaster recovery. Żaden model, żadna polityka i żaden system guardrails nie gwarantuje stuprocentowego bezpieczeństwa. Jedynym realnym zabezpieczeniem przed nieodwracalną utratą danych jest aktualny, przetestowany w praktyce backup oraz jasne procedury odtwarzania. Przykładowa polityka firmowa mogłaby brzmieć: „żaden skrypt generowany przez AI nie może zostać uruchomiony na systemach produkcyjnych, dopóki nie zostanie przetestowany w środowisku izolowanym oraz dopóki nie potwierdzono dostępności aktualnej kopii zapasowej”.

Z perspektywy zarządów i działów IT warto pamiętać, że inwestycja w procedury i narzędzia bezpieczeństwa jest z reguły tańsza niż koszt jednego poważnego incydentu. Rozwój kompetencji w obszarze MLOps i AI security staje się elementem długoterminowej strategii technologicznej: organizacje potrzebują specjalistów, którzy rozumieją zarówno infrastrukturę, jak i specyfikę modeli AI oraz potrafią wdrażać je w sposób bezpieczny dla danych i procesów biznesowych.

Konsekwencje dla deweloperów: nowe kompetencje w erze asystentów kodu

Asystenci kodu tacy jak GPT 5.3 Codex zmieniają rolę programisty. Mniej czasu poświęca się na ręczne pisanie kodu, a coraz więcej na jego ocenę, walidację, projektowanie architektury i analizę ryzyk. W praktyce oznacza to przesunięcie kompetencji z „pisania linijek” w stronę projektowania systemów i procesów, które bezpiecznie wykorzystują generowane automatycznie fragmenty – zwłaszcza w obszarze operacji na plikach i automatyzacji DevOps.

Rosną na znaczeniu kompetencje takie jak rozumienie ograniczeń modeli językowych, znajomość zasad secure coding, umiejętność uzbrajania kodu w testy jednostkowe, integracyjne i bezpieczeństwa oraz projektowanie workflowów z tzw. guardrails – warstwami walidacji, lintersami, skanerami bezpieczeństwa i systemami review. Kluczowa staje się również umiejętność precyzyjnego formułowania promptów (prompt engineering), tak aby model generował rozwiązania zgodne z zasadami bezpieczeństwa i politykami organizacji, a nie tylko „działający” kod.

W praktyce deweloper coraz częściej musi myśleć jak inspektor bezpieczeństwa. Skoro błędy w kodzie stają się tańsze do popełnienia (bo jedna komenda w narzędziu AI może wygenerować złożony skrypt w sekundę), to potencjalne skutki takich błędów – zwłaszcza w infrastrukturze krytycznej – rosną. Incydent z GPT 5.3 Codex przypomina, że programista nie może już skupiać się wyłącznie na funkcjonalności, ale musi brać odpowiedzialność za bezpieczeństwo i odporność całego rozwiązania, budując świadomość ryzyk związanych z AI w całym zespole.

Dla wielu specjalistów jest to jednak również szansa rozwoju kariery. W tekście o karierze w AI do 2030 roku pokazujemy, jak rośnie zapotrzebowanie na ekspertów łączących kompetencje programistyczne, znajomość architektury systemów, bezpieczeństwo i rozumienie modeli. Incydenty takie jak ten z GPT 5.3 Codex są nie tylko lekcją techniczną, ale także kulturową: zmuszają branżę do porzucenia narracji o AI jako magicznym, nieomylnym pomocniku i traktowania jej jak potężnego, ale wymagającego narzędzia, z którym trzeba umieć pracować odpowiedzialnie.

Przyszłość bezpieczeństwa AI w produkcji: od incydentów do dojrzałych standardów

Opisany przypadek pokazuje kilka fundamentalnych prawd o bezpieczeństwie AI w infrastrukturze IT. Po pierwsze, pojedynczy błąd składni – jeden odwrotny ukośnik w niewłaściwym miejscu – może mieć katastrofalne skutki, jeśli trafi na wrażliwe środowisko i nie będzie otoczony żadnymi barierami ochronnymi. Po drugie, obecna infrastruktura – łącząca PowerShell, CMD i słabe domyślne ustawienia – wciąż implicitnie zakłada „nieomylnego” operatora, który nigdy nie pomyli się w obsłudze ścieżek i parametrów. Po trzecie, wprowadzenie AI do takich środowisk bez zmiany procesów, uprawnień i narzędzi kontrolnych zwiększa ryzyko, a nie je zmniejsza.

Równolegle obserwujemy jednak pozytywne trendy. W inżynierii oprogramowania rośnie znaczenie koncepcji „AI safety” w praktycznym, inżynieryjnym sensie – powstają systemy guardrails, policy engines oraz rozwiązania sandboxingowe, które ograniczają zakres działań modeli w środowiskach produkcyjnych. Pojawiają się autonomiczne agentów wykonujące złożone sekwencje działań systemowych, a wraz z nimi dyskusje o standardach branżowych, certyfikacjach i regulacjach, które mają ucywilizować wykorzystanie sztucznej inteligencji w biznesie.

Wspomniany wcześniej tekst o strategiach agentów AI podkreśla, że każdy krok w stronę większej autonomii musi być zrównoważony proporcjonalnymi inwestycjami w bezpieczeństwo operacyjne. Incydent z GPT 5.3 Codex jest ostrzeżeniem na wczesnym etapie: jeśli prosty asystent kodu potrafi – przez niepozorny błąd – skasować cały dysk, to tym bardziej musimy zadbać o standardy, zanim pozwolimy agentom AI decydować o działaniach w krytycznych systemach bezpośrednio.

Przekaz na przyszłość jest klarowny. Narzędzia AI mogą dramatycznie zwiększyć produktywność administratorów, deweloperów i całych organizacji. Jednak, podobnie jak inne narzędzia o dużej mocy – od dźwigów budowlanych po systemy finansowe – wymagają rygorystycznych procedur, testów, szkoleń i jasnego podziału odpowiedzialności. Przypadki takie jak skasowany dysk nie powinny prowadzić do wniosku, że AI należy wyrzucić z produkcji. Powinny raczej stać się impulsem do tworzenia firmowych wytycznych, branżowych standardów i nowych ról odpowiedzialnych za bezpieczeństwo AI.

Organizacje, które potraktują tę lekcję poważnie, zyskają przewagę konkurencyjną: będą w stanie korzystać z mocy narzędzi takich jak GPT 5.3 Codex, minimalizując jednocześnie ryzyko spektakularnych porażek. Te, które zignorują sygnały ostrzegawcze, mogą boleśnie przekonać się, że jeden źle postawiony znak to czasem różnica między porządkiem w katalogach tymczasowych a utratą całego dorobku cyfrowego firmy.

Najczęstsze pytania o bezpieczeństwo AI i incydent z GPT 5.3 Codex (FAQ)

Czy można bezpiecznie używać GPT 5.3 Codex i podobnych asystentów kodu w produkcji?

Tak, ale wyłącznie przy zachowaniu ścisłych procedur bezpieczeństwa: code review, testów w środowisku izolowanym, ograniczonych uprawnień i działającego backupu. Asystent kodu nie powinien mieć bezpośredniego, niekontrolowanego wpływu na środowisko produkcyjne – jego rolą jest wspierać programistę, a nie zastępować procesy inżynierskie.

Jak szybko sprawdzić, czy skrypt generowany przez AI jest potencjalnie niebezpieczny?

Przede wszystkim należy wyszukać polecenia destrukcyjne (takie jak rm, rmdir, Remove-Item) oraz sprawdzić, jakie ścieżki są w nich używane (czy nie wskazują na katalog główny, katalogi systemowe lub produkcyjne). Warto też uruchomić skrypt najpierw w trybie „suchego biegu” (np. z logowaniem zamiast usuwania), użyć flag typu -WhatIf w PowerShell i sprawdzić, czy nie omija on mechanizmów potwierdzania operacji.

Jakie minimalne zabezpieczenia powinna wdrożyć firma przed szerszym użyciem AI w IT?

Na poziomie organizacji kluczowe są: polityka użycia AI (co wolno delegować modelowi, a czego nie), konta o ograniczonych uprawnieniach do uruchamiania skryptów, obowiązkowy sandbox do testów, jasne zasady backupu oraz wymóg code review dla każdego skryptu generowanego przez AI. Warto też zdefiniować listę dozwolonych narzędzi (np. preferowanie PowerShell zamiast CMD) i wewnętrzne wytyczne secure coding z uwzględnieniem AI.

Podsumowanie: co dalej z bezpieczeństwem AI w Twojej organizacji

Przypadek skasowanego dysku przez błąd w skrypcie GPT 5.3 Codex pokazuje, że nawet drobny detal w kodzie AI może wywołać poważny incydent, jeśli zabraknie procedur, zabezpieczeń i świadomego nadzoru człowieka. Zamiast rezygnować z narzędzi AI, warto jak najszybciej zbudować wokół nich dojrzałe standardy bezpieczeństwa, testowania i backupu. Jeśli w Twojej organizacji brakuje jeszcze polityki pracy z AI, checklist bezpieczeństwa i środowiska sandbox, potraktuj ten incydent jako impuls, by zacząć wdrażać je już teraz – zanim podobny błąd dotknie Twoje dane lub systemy produkcyjne.


Leave a Reply

Your email address will not be published. Required fields are marked *