CVE-2025-66506Fulcio是一个开源的免费证书颁发机构,用于为OpenID Connect (OIDC)身份颁发代码签名证书。该漏洞存在于Fulcio 1.8.3之前的版本中,由于identity.extractIssuerURL函数在处理不受信任的输入时存在缺陷,导致潜在的安全风险。攻击者可以通过发送包含大量句点字符的恶意OIDC身份令牌来触发该漏洞,使得extractIssuerURL函数在执行strings.Split操作时产生过多的内存分配。这种内存分配与输入长度成正比(O(n)复杂度),常数因子约为16,意味着即使中等长度的恶意输入也可能导致显著的内存消耗,最终可能导致服务拒绝(DoS)状态。该漏洞于2025年12月4日披露,并在1.8.3版本中得到修复。
漏洞根源在于identity.extractIssuerURL函数对用户提供的OIDC身份令牌中的issuer URL进行解析。该函数使用Go语言的strings.Split方法在句点字符上分割URL字符串。当攻击者构造一个包含大量句点(如数十个或数百个)的恶意URL时,strings.Split会创建大量临时字符串对象,导致内存分配量达到O(n)级别,其中n为输入字符串长度,常数因子约为16。例如,一个包含1000个句点的URL可能导致约16KB的内存分配,在高并发场景下会迅速耗尽系统资源。攻击者无需认证即可发送恶意请求,CVSS向量显示攻击复杂度低(AC:L),无需特殊权限(PR:N)或用户交互(UI:N),攻击向量为网络层面(AV:N)。虽然该漏洞主要影响可用性(A:H),但不会直接导致机密性(C:N)或完整性(I:N)问题。修复方案在1.8.3版本中通过优化字符串处理逻辑或添加输入长度限制来缓解该问题。