mcp-server-semgrep
Version:
MCP Server for Semgrep Integration - static code analysis with AI
93 lines (92 loc) • 3.25 kB
YAML
rules:
- id: argo-workflow-parameter-command-injection
message: Using input or workflow parameters in here-scripts can lead to command injection or code injection. Convert the parameters to env variables instead.
languages: [yaml]
metadata:
category: security
cwe:
- "CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')"
- "CWE-94: Improper Control of Generation of Code ('Code Injection')"
owasp:
- A03:2021 – Injection
confidence: MEDIUM
likelihood: MEDIUM
impact: HIGH
subcategory:
- vuln
references:
- https://github.com/argoproj/argo-workflows/issues/5061
- https://github.com/argoproj/argo-workflows/issues/5114#issue-808865370
technology:
- ci
- argo
severity: ERROR
patterns:
- pattern-inside: |
apiVersion: $VERSION
...
- metavariable-regex:
metavariable: $VERSION
regex: (argoproj.io.*)
- pattern-either:
- patterns:
- pattern-inside: |
command:
...
- python
...
...
source:
$SCRIPT
- focus-metavariable: $SCRIPT
- metavariable-pattern:
metavariable: $SCRIPT
language: python
patterns:
- pattern: |
$FUNC(..., $PARAM, ...)
- metavariable-pattern:
metavariable: $PARAM
pattern-either:
- pattern-regex: (.*{{.*inputs.parameters.*}}.*)
- pattern-regex: (.*{{.*workflow.parameters.*}}.*)
- patterns:
- pattern-inside: |
command:
...
- $LANG
...
...
source:
$SCRIPT
- metavariable-regex:
metavariable: $LANG
regex: (bash|sh)
- focus-metavariable: $SCRIPT
- metavariable-pattern:
metavariable: $SCRIPT
language: bash
patterns:
- pattern: |
$CMD ... $PARAM ...
- metavariable-pattern:
metavariable: $PARAM
pattern-either:
- pattern-regex: (.*{{.*inputs.parameters.*}}.*)
- pattern-regex: (.*{{.*workflow.parameters.*}}.*)
- patterns:
- pattern-inside: |
container:
...
command: $LANG
...
args: $PARAM
- metavariable-regex:
metavariable: $LANG
regex: .*(sh|bash|ksh|csh|tcsh|zsh).*
- metavariable-pattern:
metavariable: $PARAM
pattern-either:
- pattern-regex: (.*{{.*inputs.parameters.*}}.*)
- pattern-regex: (.*{{.*workflow.parameters.*}}.*)
- focus-metavariable: $PARAM