Semgrep
Fast, open-source static analysis for finding bugs and security issues.
Semgrep keeps spending releases on parser breadth and large-repo throughput, not new surface.
◆Recent moves
- 5d ago
Solidity parser refresh; batched targeting for very large repos
The large-repo throughput thread continues: path filtering is submitted to worker domains in batches, and parallel rule parsing shards by bytes rather than by worker count, with a new Pro memory policy that skips intermediate disk caching at the cost of RAM. The Solidity parser picks up transient storage, named mapping parameters and Cancun builtins. The fix underneath matters more than either: targets whose path filtering failed were silently absent from both the results and the skipped list, and are now retried and reported.
View source ↗ - 21d ago
OpenTofu files scanned as Terraform; Ruby parser updated
Continues the coverage-widening pattern: .tofu files are detected and scanned under the existing Terraform rulesets with no configuration, and the Ruby parser moves to tree-sitter-ruby v0.23.1 for better handling of case/when across line breaks and element references taking a block. The contributor-collection window for semgrep ci also stretches from 30 to 90 days to match the usage policy.
View source ↗ - 27d ago
Build moves to a patched OCaml compiler to stop rare crashes
The reliability strand of the current arc: Semgrep now builds against an OCaml compiler fork that backports fixes for a codegen bug behind rare nondeterministic crashes and incorrect results, plus excessive heap growth after major garbage collections. The OpenTofu extension support and the 90-day contributor window land here first and carry into 1.172.0.
View source ↗ - 1mo ago
Pro C/C++ scans skip statically-dead preprocessor branches
Precision work aimed squarely at false positives: Pro C/C++ scans no longer report matches inside #if 0 blocks and other branches the preprocessor has already eliminated. Fatal-signal backtraces return to semgrep-core, and the Pro installer now reports usage metrics so install failures can be tracked.
View source ↗ - 1mo ago
Dart parser updated to a newer upstream version
A single infra line — the Dart parser tracks a more recent upstream version. No user-visible behavior change beyond whatever the newer grammar accepts.
View source ↗ - 1mo ago
Experimental flag exposes full paths for transitive dependency findings
The clearest supply-chain movement in this window: an experimental --x-dependency-paths flag emits the full dependency path for transitive findings in JSON and SARIF output, which is what makes a transitive alert actionable rather than noise. Malicious-package findings are also relabeled from Basic to Malicious in the summary table, and the engine drops libpcre 8.x for libpcre2 with matching behavior unchanged.
View source ↗