Add semgrep rules (#5042)

* Add semgrep rules

Instrument our security scanner with the ability to use custom semgrep
rules. This is inspired by the HVS teams use of semgrep.

* semgrep: add rule to detect string interpolation in WithInfoMsg

The event.WithInfoMsg function expects a set of key value tuples,
but it can easily be misunderstood to accept string interpolation
arguments. This check will error if any string interpolation verbs are
used in calls to event.WithInfoMsg
This commit is contained in:
Johan Brandhorst-Satzkorn authored and GitHub committed 2024-09-23 10:07:57 -07:00
1 parent 35679c6a5b
commit 0ef88d0f05
2 files changed
+14 -1

No files matched your search

+13
View File
@@ -0,0 +1,13 @@
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: BUSL-1.1
rules:
- id: with-info-msg-string-interpolation
languages:
- go
severity: ERROR
message: Use of WithInfoMsg with string interpolation. WithInfoMsg expects kv
tuples.
# Source for Go string interpolation verbs:
# https://pkg.go.dev/fmt#hdr-Printing.
pattern: event.WithInfoMsg("=~/.*%(((\[\d+\])|[\d|\.|#|+|\-| |\*])*)?[s|v|q|d|T|t|b|c|o|O|x|X|U|e|E|f|F|g|G|p].*/",...)
+1 -1
View File
@@ -15,7 +15,7 @@ repository {
plugin "semgrep" {
use_git_ignore = true
exclude = ["*_test.go", "website/*", "testing/*"]
config = ["p/gosec"]
config = ["p/gosec", ".semgrep/"]
}
plugin "codeql" {