CVE-2026-31845Rukovoditel CRM版本3.6.4及更早版本中的Zadarma电话API端点存在反射型跨站脚本(XSS)漏洞。该漏洞源于应用程序直接将用户通过'zd_echo' GET参数提交的输入反射到HTTP响应中,且未进行适当的清理、输出编码或内容类型限制。未经身份验证的攻击者可利用此漏洞,通过诱导受害者点击包含恶意JavaScript负载的特制链接,在受害者的浏览器上下文中执行任意脚本代码。这可能导致会话劫持、凭证窃取、网络钓鱼或账户接管等严重后果。该问题在版本3.7中已得到修复。
该漏洞位于Rukovoditel CRM的`/api/tel/zadarma.php`文件中,核心问题在于缺乏对用户输入的安全过滤。具体而言,应用程序使用了一段不安全的代码:`if (isset($_GET['zd_echo'])) exit($_GET['zd_echo']);`。这段代码直接检查GET请求中是否存在'zd_echo'参数,如果存在,则直接将其值作为响应内容输出并终止脚本。由于没有设置严格的Content-Type(如text/plain)或使用HTML实体编码函数(如htmlspecialchars)处理输出,攻击者可以将任意JavaScript代码注入到该参数中。当受害者访问被构造的恶意URL时,服务器会原样反射攻击者提供的脚本。由于攻击发生在受害者的浏览器环境中,且该脚本在应用程序的上下文中运行,因此它可以访问该域下的Cookie、会话令牌或修改DOM结构。由于不需要身份验证即可触发此漏洞,结合社会工程学手段,攻击者可以高效地针对特定用户发起攻击,窃取敏感凭据以控制受害账户。