Разбор раскритиковал OpenCode — в теме появился разработчик и ответил
Пост, каталогизирующий дыры в безопасности OpenCode — от bash-фильтров, которые пропускают команду в base64, до CVE, позволяющего любой открытой странице отправлять shell-команды на вашу машину, — за несколько часов вышел на первое место Hacker News. В теме появился один из разработчиков OpenCode: большинство «вопиющих» проблем, по его словам, уже исправлены в грядущей v2.
Жалобы шли от мелочных (инструмент перечитывает весь конфиг на каждом ходу, ломая кэширование промптов) до серьёзных: одобрение одной безобидной команды на Python опцией «Всегда» молча разрешает и все будущие вызовы Python — включая тот, что читает ваши SSH-ключи.
Саймон Уиллисон вступился за одну из мелких претензий — дату в каждом промпте — назвав это стандартной практикой. Разработчик OpenCode сказал, что самый резонансный баг, поведение при обрезке контекста, отключили по умолчанию ещё за месяцы до публикации поста.
Фильтр команд, который пропускает пайп в base64 насквозь
Пост, написанный разработчиком, который утверждает, что пользовался всеми крупными ИИ-инструментами для кода, открывается сравнением дизайна OpenCode с «сапогом, топчущим человеческое лицо вечно», и дальше становится только резче. Главная претензия: фильтры безопасности OpenCode проверяют текст bash-команды перед запуском, но текстовую фильтрацию тривиально обойти. Автор перечисляет рабочие обходы: пропустить заблокированную команду через echo и в bash, добавить префикс env, вызвать бинарник по абсолютному пути вместо имени, закодировать нагрузку в base64 или просто выйти в shell через Python. Его вердикт всей схеме: «Текстовая фильтрация команд абсолютно бесполезна. Она не годится ни для чего».
У системы разрешений есть и второй изъян — уже не про парсинг, а про память. Одобрите одну безобидную на вид команду вроде вывода «hello» из Python опцией «Всегда» — и OpenCode запомнит это одобрение для любого будущего вызова Python, включая тот, что тихо прочитает ~/.ssh/id_rsa. Недавно раскрытый CVE дополнил картину: локальный HTTP-сервер OpenCode поставлялся с разрешительными правилами CORS (кросс-доменными правилами, позволяющими любому сайту с ним общаться), так что любая открытая в браузере страница могла запускать произвольные shell-команды или читать файлы с диска через тот же API, которым пользуется легитимный клиент.
Под списком проблем безопасности лежит более длинный набор претензий: инструмент перечитывает свой конфиг-файл и вставляет сегодняшнюю дату в системный промпт на каждом ходу — и то и другое сбрасывает кэш промптов; его системный промпт по умолчанию велит суб-агентам писать «АБСОЛЮТНО НИКАКИХ КОММЕНТАРИЕВ»; и он по умолчанию обращается к внешним провайдерам моделей, даже если пользователь хочет только локальный инференс. Итоговую строку автора в треде цитировали одобрительно и насмешливо примерно поровну: «OpenCode — это клоунский автомобиль турбослопа с уровнем защиты «прогнись передо мной, папочка»».
В теме появился разработчик, который на самом деле строит OpenCode
В теме один из основных разработчиков OpenCode ответил на несколько претензий напрямую, а не оставил пост без ответа:
«Здесь мало что можно реально исправить. Большинство более вопиющих проблем уже исправлены в нашей грядущей v2, если хотите попробовать бету... когда мы посмотрели на наши данные, не так уж очевидно, что это чистый негатив». — основной разработчик OpenCode
Он отдельно ответил на претензию про обрезку контекста, сказав, что её отключили по умолчанию уже давно, «как раз из-за жалоб вроде этой», и анонсировал дизайн системного промпта для v2, устойчивый к сбросу кэша.
Другие голоса защищали отдельные решения по их техническим достоинствам, независимо от ответа разработчика:
«Включать дату в системный промпт ценой сброса кэша в полночь — вполне разумное решение. Большинство других харнессов делают то же самое». — Саймон Уиллисон
Третий ответ пришёл от того, кто уже был убеждён достаточно, чтобы сохранить пост для будущих ссылок:
«Ни одна из перечисленных крупных проблем не уникальна для OpenCode. По крайней мере, весь список из раздела «Тревожные вещи», по-моему, применим и к Claude CLI, и, полагаю, к большинству других агентов от ведущих провайдеров моделей... его с тем же успехом можно было назвать «Перестаньте пользоваться LLM»». — читатель, сохранивший пост, чтобы часто на него ссылаться, несмотря на несоответствие заголовка
Самое резкое нетехническое возражение в теме пришло от читателя, которому не понравился сам тон:
«Это писали обычные люди. Когда стало нормальным так говорить про опенсорс?» — в теме
И по крайней мере один читатель отметил, что экономика бесплатного тарифа снимает спор ещё до того, как начнётся дискуссия о безопасности: OpenCode даёт 200 запросов каждые пять часов, а для человека, пишущего опенсорсный софт без работодателя, оплачивающего счета, этого достаточно, чтобы продолжать им пользоваться несмотря на всё вышесказанное.
Получайте такие разборы каждый день
Главные истории Hacker News — на email, в Telegram или RSS.
Google звал её «бардом Google». Потом HR назвал её забастовку срывом
В 2012 году, на своей последней пятничной летучке перед переходом в YouTube, Ларри Пейдж вызвал Клэр Стэплтон на сцену и вручил ей деревянную табличку с надписью «бард Google» — за еженедельные обзоры, которые она писала с 2007 года. Шесть лет спустя она помогла организовать забастовку, которая в один день охватила Дублин, Лондон, Цюрих и Токио, а через несколько месяцев HR-представитель уже подталкивал её к медицинскому отпуску — будто организация протеста была симптомом, который нужно лечить.