CVE-2026-40110Jupyter Server 2.17.0及更早版本在Origin头部验证中存在逻辑缺陷。由于仅使用re.match()进行前缀匹配而未强制全匹配,攻击者可利用构造的恶意域名绕过CORS限制,从不受信任的站点发起跨域请求,窃取数据或执行未授权操作。
该漏洞源于Jupyter Server在处理CORS请求时的Origin头部验证逻辑存在缺陷。代码使用Python的`re.match()`函数将传入的Origin与配置中的`allow_origin_pat`进行比对。由于`re.match()`默认仅在字符串开头匹配,而未强制要求字符串末尾匹配(即缺少`$`结束符),导致验证逻辑存在绕过风险。例如,当管理员配置仅信任`trusted.example.com`时,攻击者可注册`trusted.example.com.evil.com`域名。该恶意域名同样能通过正则匹配。攻击者可利用此漏洞,诱导用户访问恶意站点,利用被绕过的CORS策略向Jupyter Server API发起跨域请求,窃取敏感数据或执行未授权操作。