1.177.0 - 2026-09-10
### Added
- Added native Supply Chain support for Bazel workspaces using
rules_jvm_external. Semgrep now recognizes amaven_install.jsonpinned lockfile (versions0.1.0and3, as emitted by rules_jvm_external 3.x through current) paired with aMODULE.bazel(or legacyWORKSPACE/WORKSPACE.bazel) marker as a Maven-ecosystem subproject, and attributes findings to the workspace root rather than the lockfile's directory. Workspace-declared root artifacts are identified via__INPUT_ARTIFACTS_HASHfor accurate direct-vs-transitive classification; dependencies are emitted withUnknowntransitivity when that field is not available. This is the first milestone of native Bazel coverage; broader ecosystem support (rules_python,rules_go,rules_js) and Bazel-aware reachability attribution follow. (SC-2008) - Several performance improvements for regex-only rules where the underlying
regex are inefficient to run on our default regex engine (currently PCRE2). For
example, a rule matchingFOOBAR(a+)\1will skip any file that does not
containFOOBARwithout running the regex. (scrt-979)
### Changed
- Prefilter conditions now evaluate their cheap string predicates before their
expensive regex predicates. Since evaluation short-circuits, a file that a
string check already rules in or out no longer pays for regex predicates
(which is what a pattern's prefilter falls back to when no literal substring
can be extracted from it, and which can be slow on files with very long
lines). (prefilter-rank-conjuncts) - Supply Chain scans can report dependencies from their Gradle module build files instead of the root manifest. This behavior is disabled by default during rollout and can be tested with
--x-gradle-module-attribution. Enabling it can change finding IDs because finding paths change; the ID calculation is unchanged. (SC-2560)
### Fixed
-
Speed up
semgrep cifiltering when a deployment has many triage-ignored findings. (triage-ignored-performance) -
Semgrep no longer crashes with an OCaml stack trace when a proxy environment
variable holds an unusable value.HTTP_PROXY,HTTPS_PROXY, orALL_PROXY
set to an empty value is now ignored with a warning, and the scan
proceeds without a proxy. A non-empty value that is not a usable proxy URL
now exits with an error message, with any credentials in the URL
redacted, instead of failing inside the HTTP client.Semgrep also now adds the missing scheme to a proxy URL supplied
without one;httpsforHTTPS_PROXY andhttp` otherwise. (ENGINE-2208) -
Supply Chain: lockfileless Gradle scans now report a "Resource Inaccessible"
resolution error when a repository refuses a request (for example a 401 from a
private registry), instead of exiting successfully with a silently incomplete
dependency list. (sc-3358)
### Infra/Release Changes
- Improves shutdown time during scans with --trace. (otel-shutdown-flush)