Один символ в коде от ChatGPT стёр весь жёсткий диск разработчика

Рутинная задача по очистке кэша обернулась катастрофой для одного разработчика из-за крошечной ошибки в коде, сгенерированном искусственным интеллектом, который стёр всё содержимое диска.

Инцидент, впервые описанный в посте на Reddit, был связан с кодом, созданным ChatGPT Codex (версия 5.3). Пользователь попросил простой скрипт на PowerShell для удаления папок Python pycache. Вместо этого скрипт удалил всё содержимое диска F: пользователя, включая файлы проектов и данные Docker.

Что пошло не так

Согласно посту, проблема свелась к тонкой ошибке экранирования в строке пути. Сгенерированный скрипт использовал обратную косую черту (\) для экранирования кавычек. Такой подход может работать в определённых контекстах командной строки, но всё усложняется, когда PowerShell вызывает cmd.exe через cmd /c. В данном случае экранирование сработало не так, как задумывалось. Переменная пути фактически свелась к просто «\», что в Windows интерпретируется как корень текущего диска.

В сочетании с параметрами rmdir для тихого рекурсивного удаления команда, как сообщается, выполнилась без запроса подтверждения. Результат: всё содержимое корневого каталога диска было удалено.

Это не было сложной уязвимостью или малозаметной ошибкой — всего лишь небольшое несоответствие в том, как разные оболочки Windows обрабатывают экранирование.

Этот эпизод подчёркивает растущий тренд, иногда называемый «вибекодингом» (vibecoding). Для простых задач это может сэкономить время. Но когда команды взаимодействуют напрямую с файловой системой, мелкие ошибки могут быстро обернуться большими проблемами.

PowerShell и cmd.exe интерпретируют экранирование по-разному. В нативном PowerShell правильным символом экранирования обычно является обратный апостроф (`), а не обратная косая черта. Смешение этих двух сред создаёт не всегда очевидные крайние случаи, даже для опытных пользователей.

Есть и более широкая реальность командной строки Windows: деструктивные команды, такие как rmdir или Remove-Item -Recurse -Force, не обязательно имеют встроенные проверки безопасности и не запрашивают подтверждение, если это не настроено явно.

Разработчик, как сообщается, смог восстановить часть данных из резервных копий, но большая часть содержимого диска была утеряна.

Подобные инциденты не означают, что инструменты ИИ для написания кода по своей природе небезопасны. Однако они подтверждают базовое правило: всегда внимательно проверяйте сгенерированные скрипты. Запуск команд сначала в изолированном каталоге или удаление флагов принудительного/тихого выполнения во время тестирования может помочь избежать наихудших сценариев.

ИИ может ускорить рабочие процессы. Но когда дело доходит до операций с файлами, один неверно поставленный символ всё ещё может иметь катастрофические последствия.

(Источник)

Подписаться на обновления Новости / Технологии
Зарегистрируйтесь на сайте, чтобы отключить рекламу

ℹ️ Помощь от ИИ

В статье есть ошибки или у вас есть вопрос? Попробуйте спросить нашего ИИ-помощника в комментариях и он постарается помочь!

⚠️ Важно:

• AI Rutab читает ваши комментарии и готов вам помочь.
• Просто задайте вопрос 👍
• ИИ может давать неточные ответы!
• ИИ не скажет «Я не знаю», но вместо этого может дать ошибочный ответ.
• Всегда проверяйте информацию и не полагайтесь на него как на единственный источник.
• К ИИ-помощнику можно обратиться по имени Rutab или Рутаб.


0 комментариев

Оставить комментарий


Все комментарии - Технологии