Только 26% из 6080 патчей, которые две передовые LLM сгенерировали для шести свежих CVE, действительно закрыли дыру и не поменяли поведение приложения. Для команд, которые смотрят на автономное исправление уязвимостей как на следующий логичный шаг в AppSec, это неприятный сигнал. Без человека в цепочке ИИ пока чаще производит ложную уверенность, чем надежный фикс, а для безопасности это почти всегда худший из возможных компромиссов.
Исследование провела Off-by-1 Labs, исследовательская команда 1Password, сообщает The Register. Директор по security research Keith Hoodlet вместе с Axel Mierczuk и Spencer Michaels сравнили, как с задачей справляются ChatGPT 5.5 в режиме medium effort и Claude Opus 4.8 в режиме high effort. На шести недавно раскрытых CVE они получили 6080 вариантов патчей и засчитывали успех только тогда, когда исправление полностью убирало уязвимость, не вводило новых проблем и не меняло приложение так, будто вместе с багом переписали бизнес-логику. Речь шла именно об автономной генерации патчей, а не о режиме, где человек вручную направляет каждую правку.
Результат вышел холодным душем для всех, кто уже мысленно пересадил security-команду на автопилот. Еще 20.1% патчей устраняли исходную проблему, но меняли бизнес-логику: условно, схема с allow list превращалась в deny list. 2.3% вариантов закрывали одну дыру, но одновременно приносили новую security-проблему. Самая большая группа, 49.3%, не перекрыла хотя бы один путь эксплуатации. И еще 2.2% решений одновременно не чинили исходную уязвимость и открывали новый путь атаки. То есть почти в каждом втором случае diff был, а надежного закрытия CVE не было.
Даже формальные успехи оказались не очень-то успехами. Среди патчей, попавших в две «успешные» категории, больше трети исследователи назвали хрупкими: код блокировал конкретный сценарий атаки, но не лечил корневую причину. Типичный случай — экранировать несколько символов во входных данных вместо того, чтобы убрать сам небезопасный способ обработки ввода. Для такого класса результатов авторы предложили акроним FLAWED — патчи, похожие на исправления, но с дефектами внутри. Это особенно опасно там, где атака легко меняет форму: закрыли один payload, а соседний проходит по тому же слабому месту.
Отдельно команда проверила, насколько модели зависят от исходных подсказок. С корректным направлением вероятность удачного исправления поднималась до 65.0%; без подсказки держалась на 50.4%; с неверной вводной падала до 15.2%. Здесь и проявляется разница между LLM и живым инженером. Разработчик тоже может стартовать с плохой гипотезы, но у него выше шанс заметить, что совет не бьется с кодом, тестами или архитектурой. Модель же охотнее едет по заданным рельсам, даже если они ведут в стену, а сам агент при этом уверенно делает вид, что все под контролем.
На бумаге у автопатчинга все еще есть сильный аргумент: цена. Средняя стоимость одного успешного чистого патча составила $6.74, причем авторы уже включили сюда расходы на неудачные попытки. Выглядит соблазнительно, если сравнивать только с часом работы senior-разработчика. Но экономика разваливается, когда в расчет попадает ревью. По оценке исследователей, инженеру приходится перебирать гору почти одинаковых, в основном неверных диффов, и когнитивная нагрузка от такой сортировки легко съедает всю мнимую выгоду. Авторы прямо противопоставляют это обычному режиму, где LLM помогает инженеру разбирать проблему, но не подменяет решение.
Для разработчиков, техлидов и CTO вывод довольно приземленный. На фоне бума coding agents идея понятна: пусть модель не только пишет новый код, но и сама закрывает CVE в старом. Проблема в том, что для безопасности мало получить правдоподобный diff. Нужно гарантированно убрать все пути эксплуатации, не поломать продукт и не принести новую дыру рядом. Поэтому автономное исправление уязвимостей пока годится скорее как фабрика черновиков, идей для тестов и альтернативных диффов, но не как режим merge by default. Особенно это касается систем с логикой доступа, платежами, персональными данными и интеграциями, где побочный «фикс» может тихо сломать не ту часть продукта и всплыть уже после релиза.
Главный вопрос теперь не в том, умеет ли ИИ писать патчи вообще, а в том, где проходит безопасная граница автоматизации. Судя по этим результатам, ближайший рабочий сценарий — не автономное исправление уязвимостей, а связка, где модель предлагает варианты, инженер верифицирует логику, а тесты и security-проверки добивают хвосты. Полный автопилот для CVE пока красиво смотрится в демо, но слишком часто спотыкается о реальный код и реальные последствия. Подробности эксперимента, цитаты авторов и ссылка на исследовательские артефакты собраны в материале .