yaml.semgrep.missing-language-field.missing-language-field

Author
670
Download Count*
License
Please include a 'languages' field for your rule $RULEID!
Run Locally
Run in CI
Defintion
rules:
- id: missing-language-field
message: Please include a 'languages' field for your rule $RULEID!
languages:
- yaml
pattern-either:
- patterns:
- pattern-inside: "rules: [..., $RULE, ...]"
- pattern: "id: $RULEID"
- pattern-not-inside: |
- ...
languages: ...
- pattern-not-inside: |
- ...
mode: join
- patterns:
- pattern-inside: |
rules: [ ..., $OUTER_RULE, ...]
- pattern-inside: $OUTER_RULE
- pattern-inside: |
id: $OUTER_RULEID
mode: join
join:
rules: [ ..., $INNER_RULE, ...]
...
...
- pattern-inside: $INNER_RULE
- pattern-not-inside: |
- languages: ...
...
- pattern: |
id: $RULEID
severity: WARNING
metadata:
references:
- https://semgrep.dev/docs/writing-rules/rule-syntax/#required
category: correctness
technology:
- semgrep
license: Commons Clause License Condition v1.0[LGPL-2.1-only]
Examples
missing-language-field.test.yaml
rules:
# ruleid: missing-language-field
- id: unchecked-subprocess-call
patterns:
- pattern-either:
- pattern: |
subprocess.call(...)
- pattern: |
subprocess.call(...)
- pattern-not-inside: |
$S = subprocess.call(...)
- pattern-not-inside: |
subprocess.call(...) == $X
message: ""
severity: WARNING
fix: subprocess.check_call(...)
# ok: missing-language-field
- id: other-rule
languages: [generic]
message: ""
severity: INFO
pattern: <div>hello</div>
# ok: missing-language-field
- id: flask-likely-xss
mode: join
join:
rules:
# ok: missing-language-field
- id: user-input
pattern: |
$VAR = flask.request.$SOMETHING.get(...)
languages: [python]
# ok: missing-language-field
- id: unescaped-extensions
languages: [python]
patterns:
- pattern: |
flask.render_template("$TEMPLATE", ..., $KWARG=$VAR, ...)
- metavariable-regex:
metavariable: '$TEMPLATE'
regex: ".*(?<!html)$"
# ruleid: missing-language-field
- id: template-vars
#languages: [generic]
pattern: |
{{ $VAR }}
on:
- 'user-input.$VAR == unescaped-extensions.$VAR'
- 'unescaped-extensions.$KWARG == template-vars.$VAR'
- 'unescaped-extensions.$TEMPLATE < template-vars.path'
message: >-
Detected a XSS vulnerability: '$VAR' is rendered
unsafely in '$TEMPLATE'.
severity: ERROR
Short Link: https://sg.run/Zeox