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)
SOCIAL SHARE CARD GENERATOR