February 2024
ยท 6 min read
The following updates were made to Semgrep in February 2024.
๐ง OSS Engineโ
- The following versions of the OSS Engine were released in February 2024:
๐ Cloud Platformโ
Addedโ
- API: Added a
rule
object underfindings
with the following fields:name
message
confidence
category
subcategories
technologies
vulnerability_classes
cwe_names
owasp_names
- Added distinction between Pro engine and OSS findings in the Playground and Editor.
- Added support for the
linux-arm64
platform when you download Semgrep Pro Engine.
Changedโ
- Updated the Semgrep Cloud Platform (SCP) login page.
- Updated the login process from the CLI to SCP. This change affects new users.
- Updated the Semgrep installation instructions for Docker.
- Improved performance of Semgrep Playground and Editor.
Fixedโ
- Fixed a bug where the navigation sidebar covered the entire mobile screen and could not be collapsed.
- Scan summary links printed after users run
semgrep ci
now reflect a customSEMGREP_APP_URL
if set.
๐ป Codeโ
Addedโ
- Support for C and C++ is now generally available (GA), including cross-file and cross-function analysis.
- Added new Pro rules for Elixir and the Phoenix framework, covering various security and correctness issues. These are available in the
p/elixir
ruleset. - Added support for Python, with a focus on the Flask ecosystem, to the Semgrep Pro Engine.
- Added support for nested record patterns on the left-hand side of an
assignment during dataflow analysis. For example, given
{ body: { param } } = tainted
, Semgrep correctly marksparam
as tainted. - The
metavariable-regex
operator can now match on metavariables of interpolated strings that use variables with known values. - Taint analysis:
- Added support for Python constructors.
- Added support for index sensitivity. Semgrep tracks taint on individual indexes of a data structure when these are constant values, either integers or strings, and the code uses the built-in syntax for array indexing.
- Added
exact: false
as apattern-sources
sub-key so you can specify that anything inside a code region is a sink:pattern-sources:
- exact: false
pattern: ... - When
exact: true
andtaint_assume_safe_functions: true
, Semgrep now considers that, if the specified formula isn't apatterns
with afocus-metavariable
, it must look for taint in the function call's arguments. For example:...
options:
taint_assume_safe_functions: true
pattern-sources:
- exact: false
pattern: ...
Changedโ
- Improved error handling during interfile analysis so Semgrep Code doesn't crash.
- CLI: If there are multiple errors resulting from the user running Pro rules without a license, the CLI groups all errors and reports a single warning.
- The project name for repositories scanned locally is
local_scan/<repo_name>
instead of<repo_name>
. - The View Results URL displayed for findings now includes the repository and branch names.
Fixedโ
- Fixed an issue with incorrect autofix application where multiple fixes were applied to the same line.
- Fixed issue where tokens for type parameter brackets weren't stored correctly. They're now stored in the generic AST, allowing Semgrep to autofix these constructs correctly.
- Fixed an issue where Semgrep doesn't support multiple labels for taint
traces. Now, Semgrep looks at the
requires
of the sink, and if it has the shapeA and ...
, it picksA
as the preferred label and reports the trace. - Fixed issue where taint signatures don't capture changes to parameter fields.
โ๏ธ Supply Chainโ
Addedโ
- Added support for parsing Swift Package Manager manifest files and lock files.
- Added the ability to filter for dependencies that Semgrep has commented on.
- Added manual review advice to GitHub PR comments. Certain Semgrep Supply Chain (SSC) findings require manual review to verify if the finding is reachable or not.
Fixedโ
- Fixed issues with trailing newline parsing in
pyproject.toml
andpoetry.lock
files.
๐ Secretsโ
Addedโ
- Added the following new rules:
- Detection rules for Azure and AWS
- Semantic secrets rules for Python, JavaScript, and TypeScript
- Semantic rules for hard-coded credentials in bash for
curl
commands
- Added non-validator regex detection for databases, including MongoDB, Microsoft SQL Server, MySQL, Postgres, and Redis
- Added secrets rule management, which is accessible in Semgrep Cloud Platform
by going to Rules > Policies > Secrets. This allows you to:
- See all available rules
- Set valid finding modes for the rules
- Set invalid and error validation state modes across multiple rules
Fixedโ
- Fixed an issue where the Analysis method filter in Semgrep Cloud Platform wasn't filtering correctly.
๐ Documentation and knowledge baseโ
Addedโ
- The Semgrep docs sidebar has been reorganized to help users browse through the docs.
- Added a series of guides to setting up Semgrep as part of a security program for your organization.
- Added a guide to setting up a network broker that facilitates secure access between Semgrep and your private network.
- Added Experimental rules syntax reference.
- Added the following knowledge base articles:
Changedโ
- Updated the links within the GitLab CI/CD configuration file.
- Removed phone support from the docs.
- Updated the Semgrep-Slack integration docs to clarify requirements for posting to private channels.
- Updated the sample GHA configuration filefor a CI job that publishes private Semgrep rules.
- Clarified the Semgrep Assistant privacy policy on what data is stored.
- Updated Semgrep Pro versus OSS docs.
Fixedโ
- Fixed formatting on GitHub PR comments documentation. Thank you to parsiya for the fix.
- Various link fixes and Docker image updates.