CVE-2026-5538QingdaoU OnlineJudge是一款广泛使用的在线判题系统。该系统在1.6.1及之前的版本中存在一个严重的安全漏洞,被分配为CVE-2026-5538。该漏洞具体位于`JudgeServer.service_url`文件的`service_url`函数中,涉及`judge_server_heartbeat`端点。由于系统未对用户输入的URL参数进行充分的验证和过滤,攻击者可以通过操纵该参数发起服务端请求伪造(SSRF)攻击。此漏洞允许远程攻击者利用受害服务器作为代理,向内网或外部网络发送恶意请求,可能导致敏感信息泄露、内网端口扫描或进一步的内网渗透攻击。
该漏洞的根本原因在于QingdaoU OnlineJudge在处理判题服务器心跳包时,对`JudgeServer.service_url`文件中的`service_url`函数参数缺乏有效的安全校验机制。根据CVSS向量分析,攻击者需要拥有低权限账号(PR:L),这通常意味着攻击者需要注册一个判题节点或获取相应的认证Token。在`judge_server_heartbeat`端点接收心跳请求时,系统直接信任了客户端提交的`service_url`值,并未将其与内网黑名单进行比对或限制为仅允许公网地址。攻击者可以利用这一缺陷,构造包含内网敏感地址(如127.0.0.1、169.254.169.254用于云元数据窃取、或内网数据库端口)的请求包。由于服务器会主动向该地址发起连接以确认服务状态,攻击者即可利用服务器的身份对内网进行端口扫描、服务指纹识别或读取敏感文件。尽管当前CVSS评分对CIA影响评估为低,但在复杂的内网环境中,SSRF往往可以作为跳板,导致更严重的横向移动和数据泄露风险。