![]()
全球超過4億臺服務器在用的NGINX,被一個視頻文件攻破了。CVE-2026-32647,CVSS v4.0評分8.5——這是今年開年以來Web服務器領域最嚴重的本地提權漏洞之一。
F5安全公告里的措辭很克制:"允許本地認證攻擊者觸發拒絕服務或潛在執行任意代碼。"翻譯成人話:如果你有服務器賬號,上傳一個精心構造的MP4,就能讓NGINX worker進程崩潰,甚至拿到shell。
漏洞藏在最不起眼的模塊里
出問題的是ngx_http_mp4_module,一個處理MP4流媒體的老模塊。這個模塊從NGINX 1.1.19版本就存在,至今已經14年。
漏洞類型是CWE-125,越界讀取。攻擊者構造的惡意MP4會讓worker進程在解析時發生緩沖區溢出或下溢,進程直接被系統殺死。NGINX主進程會嘗試重啟worker,但在此期間,活躍連接全部中斷。
更麻煩的是內存損壞的連鎖反應。安全研究者Xint Code和Pavel Kohout來自Aisle Research,他們在協調披露時發現:這個內存破壞點理論上可以被利用來執行遠程代碼。雖然F5公告里用了"潛在"這種模糊詞,但8.5的CVSS評分已經說明問題嚴重性。
影響范圍劃得很清楚:NGINX Plus R32到R36全中,NGINX開源版1.1.19到1.29.6全中。修復版本分別是R36 P3、R35 P2、R32 P5,以及開源版的1.28.3和1.29.7。
有個細節很多人沒注意:NGINX Plus默認打包了這個模塊,開箱即用即風險。開源版用戶相對安全——除非你手動編譯時加了--with-http_mp4_module,并且在配置文件里寫了mp4指令。
![]()
攻擊面比想象中窄,但剛好打在痛點上
這個漏洞的利用條件有三層:本地訪問、認證賬號、目標服務器啟用了MP4模塊。看起來門檻很高,但恰好命中一類特殊場景。
內容分發網絡、視頻網站、在線教育平臺——這些地方的運維人員往往有服務器賬號,而業務又重度依賴MP4切片。攻擊者不需要外部滲透,內部一個被控制的賬號就能觸發。
F5的緩解方案分兩種。能立即打補丁的,直接升級。不能立即升級的,手動注釋掉所有mp4指令,然后nginx -t檢查語法,最后reload。
這里有個坑:很多管理員以為reload是熱更新,不會斷連接。但在這個場景下,reload本身就會觸發worker重啟,短暫中斷不可避免。高并發業務需要評估窗口期。
BIG-IP、BIG-IQ、F5OS、F5 Distributed Cloud用戶可以放心——公告明確說這些產品線完全不受影響。漏洞被隔離在NGINX的數據平面,控制平面沒有暴露。
14年老代碼的遺產問題
ngx_http_mp4_module的代碼最后一次大規模重構是什么時候?查提交記錄會發現,核心解析邏輯多年未動。MP4格式本身復雜,box嵌套、版本差異、廠商擴展,解析器很容易在邊界處理上栽跟頭。
![]()
這次漏洞的深層啟示是:NGINX的模塊化架構既是優勢也是負債。mp4模塊不是默認啟用,但一旦啟用就深度集成在worker進程里。一個模塊的內存安全問題,能直接拉垮整個請求處理流水線。
對比Apache的MP4處理方案,NGINX選擇把解析邏輯放在worker內部而非獨立進程。性能上贏了,隔離性上輸了。這是架構層面的trade-off,14年前沒人覺得有問題。
Aisle Research的兩位研究者值得注意。Xint Code這個名字在2024年的CVE記錄里出現過兩次,都是內存安全方向。Pavel Kohout的背景更偏向二進制分析。他們的組合技:Code負責構造觸發樣本,Kohout負責分析利用路徑。
F5的致謝名單里還有協調披露的時間線。從報告到補丁發布,典型的90天周期。這期間受影響用戶沒有公開信息,全靠廠商私下通知。這種披露模式的安全性和透明性,業內爭論了十幾年。
補丁之外的長尾問題
升級容易,驗證難。很多生產環境的NGINX是發行版自帶的,比如Ubuntu LTS、RHEL EPEL。這些渠道的補丁往往滯后上游數周甚至數月。
更隱蔽的是配置漂移。十年前某個工程師加了mp4指令,后來人走茶涼,配置沒人敢動。現在安全團隊掃描漏洞,發現版本號在受影響范圍內,但根本沒人記得哪個location在用MP4功能。
云廠商的托管NGINX服務是另一片盲區。AWS ALB、Azure Front Door、Cloudflare的底層是不是NGINX?是不是用了mp4模塊?這些細節不會寫在文檔里。用戶只能等廠商公告,或者主動開ticket追問。
開源版的版本號管理也是個歷史包袱。1.28.x是穩定分支,1.29.x是主線分支,兩個分支同時維護。這次補丁1.28.3和1.29.7一起發,但很多自動化腳本只跟蹤主線,穩定分支用戶反而漏掉更新。
最后問一句:你的NGINX配置里,有沒有一行被遺忘的mp4指令?檢查/etc/nginx/nginx.conf和所有include文件,成本不到五分鐘。但如果被攻擊者先找到,成本就是一次P0級事故復盤。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.