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, что приводит к более эффективным рабочим процессам обнаружения уязвимостей.