GizmoChina пишет о случае, который опубликовали на Reddit. Разработчик попросил ChatGPT Codex (версия 5.3) написать простой скрипт на PowerShell. Задача была рутинная: удалить папки Python pycache. Нейросеть выдала код, но тот сработал совсем не так, как ожидалось.
Изображение - ChatGPT
Проблема крылась в одном символе. Сгенерированный скрипт использовал обратную косую черту для экранирования кавычек. В определенных контекстах командной строки такой подход работает. Но здесь PowerShell вызывал cmd.exe через cmd /c, и экранирование пошло не по плану.
Переменная пути в итоге превратилась в простой символ \. Windows интерпретирует его как корень текущего диска. Команда rmdir с параметрами рекурсивного удаления выполнилась автоматически, без каких-либо запросов подтверждения. Результат — все содержимое корневого каталога диска F: исчезло.
Здесь дело не в какой‑то редкой уязвимости. Простое несоответствие в том, как разные оболочки Windows обрабатывают экранирование. PowerShell и cmd.exe используют разные правила: в стандартном PowerShell правильный символ экранирования — обратная кавычка, а не обратная косая черта. При смешивании этих сред возникают неочевидные ситуации даже для опытных пользователей.
Деструктивные команды вроде rmdir или Remove-Item -Recurse -Force не имеют встроенных проверок безопасности. Они не спрашивают подтверждения, если их специально не настроить на запрос.
Разработчику удалось восстановить часть данных из резервных копий. Но значительный объем информации с жесткого диска вернуть не получилось.