| Title | DrayTek Vigor2960 Vigor2960 1.5.1.6 (revision 8218) Authenticated commonupload Arbitrary File Clobber and Command In |
|---|
| Description | commonupload accepts both a user-controlled upload_path and upload_name and feeds them directly into the final mv command. Two impacts are confirmed: writing uploaded content into an attacker-selected existing root-writable directory, and arbitrary root command execution through the unquoted upload_path at sink 17584.
Affected path(s):
POST /cgi-bin/mainfunction.cgi/commonupload
Root cause:
Both the target directory and the target file name are chosen by the front end and flow directly into the final mv command.
Confirmed impact:
Because this CGI runs as root, an authenticated attacker can write arbitrary uploaded content into effectively arbitrary target paths in the device filesystem; /var/status_system_interface has been verified on the real device.
## 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-0010-authenticated-commonupload-arbitrary-file-clobber |
|---|
| User | eqqie (UID 101441) |
|---|
| Submission | 09/19/2026 16:51 (1 month ago) |
|---|
| Moderation | 10/20/2026 07:51 (1 month later) |
|---|
| Status | Accepted |
|---|
| VulDB entry | 422669 [DrayTek Vigor2960 1.5.1.6 Revision 8218 commonupload mainfunction.cgi upload_path/upload_name unrestricted upload] |
|---|
| Points | 20 |
|---|