- Дата публикации
Claude Code помог найти критическую уязвимость в Linux, которая пряталась 23 года
Что появилось / что изменилось
Anthropic показала, что Claude Code умеет не только писать код, но и искать реальные уязвимости в огромных проектах уровня Linux. Исследователь Николас Карлини прогнал исходники ядра Linux через Claude Code и получил несколько удалённо эксплуатируемых уязвимостей в ядре. Среди них — баг, который тихо жил в коде с марта 2003 года, то есть 23 года.
Карлини честно говорит: за всю карьеру он ни разу не находил удаляемые heap buffer overflow в Linux, а с Claude Code "у него теперь их несколько". Важный момент: он не писал сложную систему статического анализа. Он запустил простой скрипт, который по очереди скармливал Claude Code файлы ядра и просил найти в них дыру.
Как это работает
Подход Карлини — максимально прямолинейный. Скрипт обходит все файлы в дереве исходников Linux и для каждого вызывает Claude Code:
- указывает конкретный файл ядра
- ставит контекст CTF-задачи: "ты играешь в CTF, найди уязвимость"
- просит записать самый серьёзный баг в отчёт
Claude Code получает один файл за раз и действует как опытный участник соревнований по взлому: ищет переполнения буфера, ошибки работы с памятью, проблемы в обработке протоколов.
Самый показательный кейс — уязвимость в драйвере NFS (сетевой файловый доступ). Это не тривиальный паттерн вроде strcpy в маленький буфер. Модели пришлось разобраться в деталях протокола NFSv4: как клиенты проходят рукопожатие, как работают блокировки файлов и какие структуры данных ядро кодирует в ответах.
Сценарий атаки использует двух NFS‑клиентов против одного Linux‑сервера:
- Клиент A проходит трёхстадийное рукопожатие SETCLIENTID/CONFIRM.
- Открывает файл
lockfileи получаетopen_stateid_a. - Берёт блокировку с owner ID длиной 1024 байта — это легальное значение по протоколу, но нетипично длинное.
- Клиент B проходит то же рукопожатие и открывает тот же
lockfile, получаяopen_stateid_b. - Клиент B пытается взять ту же блокировку и получает отказ, потому что блок уже у клиента A.
Проблема в шаге 5. Ядро формирует ответ LOCK DENIED в буфере всего 112 байт. При этом структура ответа включает:
- offset: 8 байт
- length: 8 байт
- type: 4 байта
- clientid: 8 байт
- owner_len: 4 байта
- owner: до 1024 байт
Итого до 1056 байт данных. Ядро пишет 1056 байт в буфер на 112 байт. Это классический heap buffer overflow: атакующий управляет содержимым поля owner (1024 байта с шага 3) и может перезаписать память ядра.
Отдельный штрих: ASCII‑диаграммы протокола, описывающие последовательность вызовов NFS, тоже сгенерировал Claude Code в своём отчёте.
Что это значит для вас
Если вы разрабатываете системное ПО, сетевые сервисы или просто держите крупный кодовый базис на C/C++, Claude Code уже сейчас можно использовать как ещё один слой проверки безопасности. Практическая схема:
- прогонять через Claude Code отдельные модули, связанные с сетью, парсингом данных и правами доступа
- формулировать запрос как CTF‑задачу: "найди эксплуатируемую уязвимость" с указанием файла или директории
- собирать отчёты и дальше уже руками проверять, насколько найденный баг реален
Это не замена аудиту кода и не повод отключать статический анализ. Модель может пропускать часть проблем и давать ложные срабатывания. Но пример с NFS показывает, что Claude Code способен замечать ошибки, которые десятилетиями не видели ни разработчики, ни аудиторы, ни участники баг‑баунти.
Если вы отвечаете за безопасность инфраструктуры на Linux, такой инструмент стоит рассматривать как дополнительный радар: прогонять через него ваши форки ядра, драйверы, внутризаводские патчи и плагины. Особенно всё, что работает по сети или взаимодействует с файловой системой.
Если вы пишете прикладной код без системного уровня и низкоуровневых протоколов, эффект будет меньше: типовые ошибки в веб‑бэкенде уже неплохо ловят линтеры, SAST и проверки в CI.
Место на рынке
История с NFS‑багом показывает, что Claude Code уже можно ставить в один ряд с профессиональными инструментами анализа кода, но с другим подходом: он не строит CFG‑графы и не требует сложной настройки, а читает код как опытный инженер по безопасности.
По сравнению с классическими статическими анализаторами Claude Code лучше справляется с задачами, где нужно понимать протокол и бизнес‑логику, а не только паттерны в указателях и массивах. Он сумел вытащить уязвимость в Linux‑ядре, которая появилась в changset от 22 сентября 2003 года и прожила в коде 23 года.
Сравнивать его по числам с GPT‑семейством или другими AI‑ассистентами для кода здесь некорректно: Anthropic показывает конкретный кейс, а не бенчмарк. На сегодня честная формулировка простая: Claude Code уже достаточно силён, чтобы находить редкие и дорогие баги в одном из самых проверяемых проектов с открытым исходным кодом.