Tenda AC20路由器緩沖區溢出漏洞分析
1.前言
七月底,在對 Tenda AC20 路由器 進行安全分析時,發現其固件在處理特定輸入時存在 緩沖區溢出漏洞。
該漏洞源于程序在拷貝用戶輸入時缺乏有效的邊界檢查,攻擊者可以通過構造惡意請求觸發溢出,從而導致系統崩潰,甚至在某些場景下獲得更高權限,進而完全控制設備。
經過多次驗證與測試,確認該漏洞風險較高,對設備的安全性影響嚴重。
我整理了一份詳細的技術報告,內容包括漏洞成因、復現方法及修復建議,并通過正規渠道提交給廠商及 CVE 分配機構。
近日,該漏洞已被正式收錄,編號為 CVE-2025-8939 。
2.漏洞概述
Tenda AC20 路由器被發現存在緩沖區溢出漏洞。攻擊者可以通過向某些路徑發送特制的 HTTP POST 請求來觸發此漏洞,從而可能導致拒絕服務 (DoS) 攻擊,甚至遠程代碼執行 (RCE)。
3.漏洞細節
AC20 路由器的最新固件可從騰達官網下載:AC20 升級軟件 - 騰達官網
固件可以使用以下在線工具解壓:https://zhiwanyuzhou.com/multiple_analyse/firmware/
或者直接使用binwalk解包也是可以的,獲得以下文件:

我們要找到/squashfs-root/bin/httpd 二進制文件。
因為httpd就是Tenda 路由器的 Web 管理后臺進程,大部分家用路由器,包括 Tenda都提供一個 Web 管理界面,這個界面其實就是由路由器內部的一個小型 Web 服務器httpd提供的。
當用戶在瀏覽器里訪問路由器后臺時,請求會被發送到路由器本地運行的 httpd 服務,這個二進制文件負責接收、解析 HTTP 請求,比如說登錄、修改 Wi-Fi 密碼、固件升級等,然后調用底層的系統函數或配置接口。
由于 httpd 要解析用戶提交的數據,如果代碼沒有做好邊界檢查,就可能導致緩沖區溢出、命令注入等問題,這也是為什么路由器的很多漏洞,很常見的溢出、注入、未授權訪問都集中在 httpd 這個二進制文件里。
解包文件里面還有dhttpd二進制文件,它與httpd最大的不同就在于httpd是Tenda 的主后臺 Web 管理進程,就是能夠對用戶可見的路由器后臺,而dhttpd則會用來跑一些非核心但需要 Web 接口的功能,像什么診斷、子模塊或者是其他特定功能。
在Tenda AC 系列里,Web 管理界面并沒有用第三方服務器,比如lighttpd,或者是boa之類的,而是廠商自己寫的 httpd 二進制文件。
那么,所有 HTTP 請求直接由這個 httpd 處理,路由器后臺的邏輯,像什么 Wi-Fi 配置、系統管理之類的也都在里面實現,所以漏洞就會出現在 httpd 本身。
換句話說,Tenda 的 httpd 本身就是 Web 服務 + 業務邏輯的二合一。
回到正題,我們在httpd文件中發現函數fromSetWifiGusetBasic有緩沖區溢出的風險。
可以看到這里的函數fromSetWifiGusetBasic,該函數會獲取shareSpeed的值,然后將其復制到Var數組中,且沒有進行長度檢查,從而導致緩沖區溢出漏洞。

交叉引用后再往上翻就會發現它其實是有個前提條件的,那就是請求路徑必須是WifiGuestSet。


這行代碼的作用,是把 WifiGuestSet 這個字符串與具體的處理函數 fromSetWifiGuestBasic 綁定在一起。換句話說,只要有請求命中 WifiGuestSet,設備就會調用對應的函數去執行。
【----幫助網安學習,以下所有學習資料免費領!加vx:YJ-2021-1,備注 “博客園” 獲取!】
① 網安學習成長路徑思維導圖
② 60+網安經典常用工具包
③ 100+SRC漏洞分析報告
④ 150+網安攻防實戰技術電子書
⑤ 最權威CISSP 認證考試指南+題庫
⑥ 超1800頁CTF實戰技巧手冊
⑦ 最新網安大廠面試題合集(含答案)
⑧ APP客戶端安全檢測指南(安卓+IOS)
所以我們Poc的請求路徑就應該是POST /goform/WifiGusetSet HTTP/1.1 。
路徑前加 /goform/ 是 Tenda 固件的慣用套路,結合代碼邏輯,基本可以確認。
4.漏洞驗證
確定漏洞點之后,我們先把固件跑起來,模擬一個真實運行環境,更好讓我們觀察是否因為棧溢出而產生崩潰頁面
找到 /bin/httpd 文件。要模擬環境,使用以下命令:
sudo chroot ./ ./qemu-mipsel-static ./bin/httpd

等一會之后,直接上瀏覽器輸入對應IP地址 192.168.102.145,就可以進入到AC20路由器頁面。

跑起來之后,我們使用burpsuite進行一個發包測試,發送一堆垃圾數據到sharedSpeed。

可以發現192.168.102.145/main.html出現了崩潰信息。
而從終端也觀察到分段錯誤,確認發生了棧溢出,也就是shareSpeed這里存在一個緩沖區錯誤。

更多網安技能的在線實操練習,請點擊這里>>

浙公網安備 33010602011771號