rules:
- id: chrome-remote-interface-setdocumentcontent-injection
  message: >-
    If unverified user data can reach the `setDocumentContent` 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:
    - chrome-remote-interface
  languages: [javascript, typescript]
  patterns:
  - pattern-inside: |
      require('chrome-remote-interface');
      ...
  - pattern-not-inside: |
      var $INPUT = "...";
      ...
  - pattern: |
      $PAGE.setDocumentContent({html: $INPUT},...)
  - pattern-not: |-
      $PAGE.setDocumentContent({html: "..."},...)
