Semgrep v1.157.0, выпущенный 31 марта 2026 года, сосредоточен на улучшениях производительности и безопасности, особенно для Pro-пользователей. Это минорное обновление уточняет возможности статического анализа и устраняет несколько проблем с парсингом.
Ключевые Изменения
Функции и Улучшения:
- Улучшенное Отслеживание Taint (Pro): Повышена точность отслеживания taint через вызовы лямбда и улучшено кросс-файловое отслеживание для глобальных переменных (LANG-268, LANG-275).
- Расширенное Сопоставление Metavariable-Type: Теперь можно сопоставлять имя класса, например, в
$C.getInstance(...), а затем использоватьmetavariable-typeдля$Cдля проверки его типа (LANG-271). - Новый Парсер npm Lock Files (Pro): Анализ цепочки поставок для файлов
npm package lockтеперь использует проприетарный парсер на основе OCaml, заменяя старую версию на Python. Эта функциональность теперь доступна только для пользователей Semgrep Pro (gh-5658).
Производительность:
- Оптимизированный Межфайловый Анализ Taint (Pro): Уменьшает избыточные перерасчеты во время межфайлового анализа taint путем сериализации промежуточных результатов на диск, ускоряя анализ (ENGINE-2582).
Исправления и Стабильность:
- Улучшенное Сообщение Об Ошибках: Ошибки во время обнаружения целевых файлов (например, ошибки разрешений) теперь отображаются как предупреждения, а не игнорируются без уведомления (ENGINE-2627).
- Коррекции Парсинга: Устранены проблемы в парсинге Rust (
&raw), FQN Kotlin вmetavariable-type,requirements.txt, пропускающем закрепленные зависимости, и парсинге Python с пустыми строками/кавычками (rust-parser-updated, LANG-271, SC-3379, gh-11287). - Фильтрация Путей Правил: Исправлена фильтрация
paths.include/paths.excludeпри передаче одного файла в качестве цели сканирования, гарантируя использование полных путей относительно проекта (gh-11560). - Стабильность: Предотвращены segfaults, вызванные глубоко вложенными совпадениями aliengrep (engine-2628).
- Улучшения Scala и Golang (Pro): Улучшено разрешение типов и вызовов в Scala, а также разрешение модулей Golang (lang-79, lang-80, code-9225).
Полный список изменений доступен в официальных примечаниях к выпуску Semgrep v1.157.0.
Влияние на QA-команды
Это обновление предоставляет QA-командам более точные результаты статического анализа, особенно для анализа taint, ориентированного на безопасность в сложных кодовых базах. Улучшенное сообщение об ошибках при обнаружении файлов означает меньше незамеченных файлов, повышая надежность сканирования. Pro-пользователи получают выгоду от более быстрого и точного анализа цепочки поставок и межфайлового отслеживания taint, что приводит к более эффективным рабочим процессам обнаружения уязвимостей.
