Skip to content

Commit 73378b3

Browse files
committed
fix: semgrep rules updated CF-1809
1 parent b86f8b5 commit 73378b3

File tree

6 files changed

+27393
-96640
lines changed

6 files changed

+27393
-96640
lines changed

codacy-client/client.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,19 @@ func GetDefaultToolPatternsConfig(initFlags domain.InitFlags, toolUUID string, o
177177
baseURL += "?enabled=true"
178178
}
179179

180-
return getAllPages(baseURL, initFlags, parseDefaultPatternConfigurations)
180+
allPaterns, err := getAllPages(baseURL, initFlags, parseDefaultPatternConfigurations)
181+
if err != nil {
182+
return nil, err
183+
}
184+
185+
onlyRecommendedPatterns := make([]domain.PatternConfiguration, 0)
186+
for _, pattern := range allPaterns {
187+
if pattern.PatternDefinition.Enabled {
188+
onlyRecommendedPatterns = append(onlyRecommendedPatterns, pattern)
189+
}
190+
}
191+
192+
return onlyRecommendedPatterns, nil
181193
}
182194

183195
// GetRepositoryToolPatterns fetches the patterns for a tool in a repository

integration-tests/config-discover/expected/tools-configs/semgrep.yaml

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29501,6 +29501,43 @@ rules:
2950129501
}
2950229502
- focus-metavariable: $SECRET
2950329503
severity: WARNING
29504+
- id: terraform.aws.security.aws-provisioner-exec.aws-provisioner-exec
29505+
languages:
29506+
- terraform
29507+
message: Provisioners are a tool of last resort and should be avoided where possible. Provisioner behavior cannot be mapped by Terraform as part of a plan, and execute arbitrary shell commands by design.
29508+
metadata:
29509+
category: security
29510+
confidence: HIGH
29511+
cwe:
29512+
- 'CWE-77: Improper Neutralization of Special Elements used in a Command (''Command Injection'')'
29513+
- 'CWE-94: Improper Control of Generation of Code (''Code Injection'')'
29514+
impact: MEDIUM
29515+
likelihood: HIGH
29516+
owasp:
29517+
- A03:2021 - Injection
29518+
- A01:2017 - Injection
29519+
references:
29520+
- https://developer.hashicorp.com/terraform/language/resources/provisioners/remote-exec
29521+
- https://developer.hashicorp.com/terraform/language/resources/provisioners/local-exec
29522+
subcategory:
29523+
- guardrail
29524+
technology:
29525+
- terraform
29526+
patterns:
29527+
- pattern-either:
29528+
- pattern: |
29529+
provisioner "remote-exec" {
29530+
...
29531+
}
29532+
- pattern: |
29533+
provisioner "local-exec" {
29534+
...
29535+
}
29536+
- pattern-inside: |
29537+
resource "aws_instance" "..." {
29538+
...
29539+
}
29540+
severity: WARNING
2950429541
- id: terraform.aws.security.aws-rds-backup-no-retention.aws-rds-backup-no-retention
2950529542
languages:
2950629543
- hcl
@@ -34374,8 +34411,12 @@ rules:
3437434411
- A3:2017 Sensitive Data Exposure
3437534412
options:
3437634413
generic_ellipsis_max_span: 0
34377-
pattern: |
34378-
$PASSWORD VARCHAR2($LENGTH) := $...VALUE;
34414+
patterns:
34415+
- pattern: |
34416+
$PASSWORD VARCHAR2($LENGTH) := $...VALUE;
34417+
- metavariable-regex:
34418+
metavariable: $PASSWORD
34419+
regex: (?i).*(password|motdepasse|heslo|adgangskode|wachtwoord|salasana|passwort|passord|senha|geslo|clave|losenord|clave|parola|secret|pwd).*
3437934420
severity: ERROR
3438034421
- id: codacy.generic.plsql.resource-injection
3438134422
languages:

integration-tests/init-with-token/expected/tools-configs/semgrep.yaml

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,21 @@
1-
rules:
1+
- id: bash.lang.correctness.unquoted-expansion.unquoted-variable-expansion-in-command
2+
- bash
3+
message: Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array, consider using a proper bash array.
4+
category: correctness
5+
- bash
6+
patterns:
7+
technology:
8+
languages:
9+
metadata:
10+
- pattern-either:
11+
- pattern: |
12+
... ${$VAR} ...
13+
- pattern: |
14+
... ...${$VAR}... ...
15+
- metavariable-regex:
16+
metavariable: $VAR
17+
regex: '[*@0-9]|[A-Za-z].*'
18+
severity: INFO
219
- id: clojure.lang.security.use-of-md5.use-of-md5
320
languages:
421
- clojure
@@ -30,6 +47,19 @@ rules:
3047
- pattern: (java.security.MessageDigest/getInstance MessageDigestAlgorithms/MD5)
3148
- pattern: (java.security.MessageDigest/getInstance org.apache.commons.codec.digest.MessageDigestAlgorithms/MD5)
3249
severity: WARNING
50+
- fix: Bitwise.bnot($VAL)
51+
id: elixir.lang.best-practice.deprecated-bnot-operator.deprecated_bnot_operator
52+
languages:
53+
- elixir
54+
message: The bitwise operator (`^^^`) is already deprecated. Please use `Bitwise.bnot($VAL)` instead.
55+
metadata:
56+
category: best-practice
57+
references:
58+
- https://github.com/elixir-lang/elixir/commit/f1b9d3e818e5bebd44540f87be85979f24b9abfc
59+
technology:
60+
- elixir
61+
pattern: ~~~$VAL
62+
severity: WARNING
3363
- id: codacy.generic.plsql.empty-strings
3464
languages:
3565
- generic

0 commit comments

Comments
 (0)