address-sanitizer — скилл для Claude Code: что делает и как установить
Скилл учит агента собирать код с -fsanitize=address, читать отчёты ASan и снимать лимиты памяти у фаззера. Нужен, когда падает C/C++ или Rust с unsafe-блоками.
npx skills add trailofbits/skills --skill address-sanitizer -a claude-codeЧто делает address-sanitizer
Скилл даёт агенту порядок действий с AddressSanitizer: собрать бинарник с -fsanitize=address и -g, выставить ASAN_OPTIONS, прочитать отчёт и понять, где код вышел за границу буфера или полез в освобождённую память. Внутри пошаговый разбор, короткая таблица опций (verbosity, abort_on_error, detect_leaks) и отдельные разделы под libFuzzer, AFL++ и cargo-fuzz.
Память ASan резервирует щедро: около 20TB виртуального адресного пространства. Поэтому фаззеру лимит придётся снять: -rss_limit_mb=0 у libFuzzer, -m none у AFL++. Иначе процесс прибьют на старте, и вы решите, что виноват код. Для Rust тот же режим включается флагом --sanitizer=address в cargo fuzz.
Сборка с ASan идёт примерно в 2-4 раза медленнее обычной. На Windows поддержка экспериментальная, на macOS ограниченная. В прод такой бинарник не берут: он и медленнее, и защищённости не добавляет, а скилл нужен в тестах, где падение лучше поймать сразу. В чистом Go или Java пользы мало.
Какие задачи решает
- собрать бинарник под ASan и не забыть
-gради читаемого стека - понять, почему фаззер умирает через секунду после старта
- разобрать отчёт
heap-buffer-overflowи найти строку в коде - поймать утечку памяти на прогоне юнит-тестов
- включить ASan для Rust с unsafe-блоками или FFI
Примеры запросов агенту
- Собери
fuzz_target.cс-fsanitize=address -gи запусти сASAN_OPTIONS=verbosity=1:abort_on_error=1 - Фаззер падает сразу после старта — сними лимит памяти через
-rss_limit_mb=0 - Разбери этот ASan-отчёт: на какой строке
heap-buffer-overflow?
Как установить address-sanitizer
1Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill address-sanitizer -a claude-code2Вручную: положить файлы
~/.claude/skills/address-sanitizer/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/address-sanitizer/
1Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill address-sanitizer -a codex2Вручную: положить файлы
.agents/skills/address-sanitizer/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill address-sanitizer -a cursor2Вручную: положить файлы
.cursor/skills/address-sanitizer/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install trailofbits/skills address-sanitizer2Вручную: положить файлы
.github/skills/address-sanitizer/SKILL.md1Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill address-sanitizer -a gemini-cli2Командой платформы
gemini skills install https://github.com/trailofbits/skills --path plugins/testing-handbook-skills/skills/address-sanitizerВручную: положить файлы
.devin/skills/address-sanitizer/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill address-sanitizer -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о address-sanitizer
Как установить address-sanitizer в Claude Code?
Выполните npx skills add trailofbits/skills --skill address-sanitizer -a claude-code. Файл скилла появится по пути ~/.claude/skills/address-sanitizer/SKILL.md.
Что делает этот скилл?
Он задаёт агенту рабочую процедуру для сборок под ASan: флаги компилятора, переменная ASAN_OPTIONS, чтение отчёта о падении и настройки фаззера, при которых процесс доживает до находки.
Потянет ли ASan на macOS и Windows?
На Windows поддержка экспериментальная, на macOS часть возможностей не работает. Полноценно рассчитывать на ASan стоит на Linux.