| Title | DrayTek Vigor2960 Vigor2960 1.5.1.6 (revision 8218) Upload Filename Command Injection Across Multiple Authenticated |
|---|
| Description | The following authenticated upload endpoints share the same file-name command injection flaw and should be validated one by one:
POST /cgi-bin/mainfunction.cgi/uploadlangs
Impact: the uploaded file name reaches an unquoted mv command and can execute arbitrary shell commands.
POST /cgi-bin/mainfunction.cgi/certificaterequestupload
Impact: the uploaded file name reaches a single-quoted /sbin/import_cert_req command and can break out of quoting to execute arbitrary shell commands.
POST /cgi-bin/mainfunction.cgi/userkeyupload
Impact: the uploaded file name reaches a single-quoted /sbin/import_ca command and can break out of quoting to execute arbitrary shell commands.
POST /cgi-bin/mainfunction.cgi/usercetificateupload
Impact: the uploaded file name reaches a single-quoted /sbin/import_cert command and can break out of quoting to execute arbitrary shell commands.
POST /cgi-bin/mainfunction.cgi/trustcaupload
Impact: the uploaded file name reaches a single-quoted /sbin/import_ca command and can break out of quoting to execute arbitrary shell commands.
Root cause:
The uploaded file name, after only basename-style handling, is inserted directly into mv or /sbin/import_* commands without shell-semantic isolation.
Confirmed impact:
An authenticated attacker can trigger arbitrary shell command execution across multiple upload handlers, one route at a time.
## Vendor Confirmation
The vulnerability has been officially confirmed. The email is available at: https://github.com/yikesoftware/DrayTek_Vigor2960_Security_Analysis/tree/main/vendor_confirm
The official fix for this vulnerability has been released: https://fw.draytek.com.tw/Vigor2960/Firmware/v1.5.1.7/Vigor2960_v1.5.1.7.zip |
|---|
| Source | ⚠️ https://github.com/yikesoftware/DrayTek_Vigor2960_Security_Analysis/tree/main/cases/DRV2960-0008-authenticated-upload-filename-command-injection |
|---|
| User | eqqie (UID 101441) |
|---|
| Submission | 09/19/2026 16:49 (1 month ago) |
|---|
| Moderation | 10/20/2026 07:50 (1 month later) |
|---|
| Status | Accepted |
|---|
| VulDB entry | 422667 [DrayTek Vigor2960 1.5.1.6 Revision 8218 Upload Endpoint mainfunction.cgi uploadlangs command injection] |
|---|
| Points | 20 |
|---|