rules:
- id: telnet-request
  message: >-
    Checks for creation of telnet servers or attempts to connect through telnet. This is insecure as the
    telnet protocol supports
    no encryption, and data passes through unencrypted.
  severity: WARNING
  metadata:
    likelihood: MEDIUM
    impact: MEDIUM
    confidence: MEDIUM
    category: security
    cwe: 'CWE-319: Cleartext Transmission of Sensitive Information'
    owasp: 'A03:2017 - Sensitive Data Exposure'
    references:
    - https://www.npmjs.com/package/telnet
    - https://www.npmjs.com/package/telnet-client
    subcategory:
    - vuln
    technology:
    - node.js
    vulnerability: Insecure Transport
  languages:
  - javascript
  patterns:
  - pattern-either:
    - pattern-inside: |
        $TEL = require('telnet-client');
        ...
        $SERVER = new $TEL();
        ...
    - pattern-inside: |
        $SERVER = require('telnet');
        ...
  - pattern-either:
    - pattern: |
        $SERVER.on(...)
    - pattern: |
        $SERVER.connect(...)
    - pattern: |
        $SERVER.createServer(...)
