Submit #1023231: Tenda AC6/AC9/AC15/AC18/AC10U AC6 15.03.05.19/AC9 15.03.05.19 (6318)/AC15 15.03.05.19/AC18 15.03.05.19 (6318)/AC10U 15.03.06.48 NULL Pointer Dereferenceinfo

TitleTenda AC6/AC9/AC15/AC18/AC10U AC6 15.03.05.19/AC9 15.03.05.19 (6318)/AC15 15.03.05.19/AC18 15.03.05.19 (6318)/AC10U 15.03.06.48 NULL Pointer Dereference
DescriptionNULL pointer dereference in the Tenda AC-series web management service (bin/httpd), function formWifiWpsOOB, reachable at /goform/WifiWpsOOB. The function retrieves the request parameter "index" through a getter whose default value is NULL and passes the result directly to atoi() without validating it: index = websGetVar(wp, "index", NULL); ... atoi(index); <- dereference, no guard ... if (index == NULL) { ... } <- the guard exists, 44 bytes later When "index" is absent or empty the getter returns NULL, and atoi(NULL) descends into the C library's strtol, whose character-scan loop reads a byte from address 0x0. This raises SIGSEGV and terminates the service, leaving the web interface unavailable until the device is restarted. Captured under a debugger: pc 0x3fdedafc inside strtol, r0 = 0x0, faulting instruction ldrb r3,[r6] with r6 = 0x0, fault address 0x0, caller confirmed by the saved return address 0x9b724 on the guest stack. A single unauthenticated request is enough: curl -s "http://<device>/goform/WifiWpsOOB" -H "Cookie: password=x" The authentication gate only checks that a cookie named "password" is present and never validates its value, so no credentials are required. Affected and reproduced: Tenda AC6 15.03.05.19, AC9 (v1.0) 15.03.05.19 (6318), AC15 15.03.05.19, AC18 15.03.05.19 (6318), AC10U 15.03.06.48. All five were reproduced by running the vendor's unmodified firmware images under QEMU user-mode emulation. The AC6 archive is byte-identical to the file the vendor's download centre serves today (SHA256 621ce4ee...2372aa1b). The vendor was notified on 2026-10-10. This is a different defect from the stack-based buffer overflows previously reported for the same function and the same parameter (CWE-121 and related, triggered by an over-long value). This one is CWE-476, triggered by the parameter being absent. The triggers are mutually exclusive: supplying a value cannot reach this fault and omitting it cannot reach the overflow. Across the whole binary there is exactly one unguarded NULL-default parameter read, while the two sibling handlers that read the same parameter name validate it correctly, indicating an implementation omission rather than a design choice. CVSS 3.1: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Source⚠️ https://github.com/Xuan-crane/IoT-CVE-Records/blob/main/Tenda/AC6-AC9-AC15-AC18-AC10U/formWifiWpsOOB-null-pointer-dereference.md
User
 xucrane (UID 102018)
Submission10/10/2026 13:15 (21 days ago)
Moderation10/26/2026 17:14 (16 days later)
StatusDuplicate
VulDB entry214113 [Tenda AC18 15.03.05.19 formWifiWpsOOB buffer overflow]
Points0

Interested in the pricing of exploits?

See the underground prices here!