rules:
- id: playwright-evaluate-arg-injection
  message: >-
    If unverified user data can reach the `evaluate` method it can result in Server-Side Request Forgery vulnerabilities
  severity: WARNING
  metadata:
    owasp: 'A1: Injection'
    cwe: 'CWE-918: Server-Side Request Forgery (SSRF)'
    category: security
    technology:
    - playwright
  languages: [javascript, typescript]
  patterns:
  - pattern-inside: |
      require('playwright');
      ...
  - pattern-either:
    - pattern-inside: function $FUNC (...,$INPUT,...) {...}
    - pattern-inside: function (...,$INPUT,...) {...}
  - pattern-either:
    - pattern: $PAGE.evaluate($CODE,...,<... $INPUT ...>,...)
    - pattern: $PAGE.evaluateHandle($CODE,...,<... $INPUT ...>,...)
