CVE-2026-33659EspoCRM是一款开源的客户关系管理应用程序。在9.3.3及以下版本中,POST /api/v1/Attachment/fromImageUrl接口存在服务端请求伪造(SSRF)漏洞。该漏洞源于主机验证逻辑中的DNS重绑定(TOCTOU)条件及空DNS结果处理缺陷。拥有低权限且具有默认附件创建权限的攻击者可利用此漏洞绕过内部IP限制,扫描内部网络端口、确认内部主机存在并与内部HTTP服务交互。虽然无法通过此端点提取二进制协议数据或执行远程代码,但该漏洞仍对内网安全构成风险。该问题已在9.3.4版本中修复。
该漏洞的核心机制在于验证逻辑与实际请求逻辑之间的时间差(TOCTOU)以及解析器的不一致。在EspoCRM的受影响版本中,系统首先使用PHP的`dns_get_record()`函数对用户提供的URL主机名进行DNS解析和验证,以检查其是否指向内网IP。然而,在随后的HTTP请求中,curl库使用其内部的解析器(通常是`gethostbyname()`)再次解析同一主机名。攻击者可以利用DNS重绑定技术,控制DNS服务器在第一次查询时返回合法的外部IP,而在第二次查询时返回内部IP,从而绕过安全检查。此外,如果DNS查询失败(如IPv6-only域名或不存在的域名),`dns_get_record()`可能返回空结果,导致验证逻辑隐式允许该主机通过,进一步扩大了攻击面。