CVE-2026-42195draw.io 在 29.7.9 版本之前存在安全漏洞。该应用程序的客户端接受一个名为 `gitlab` 的 URL 参数,该参数可以覆盖 OAuth 登录过程中使用的 GitLab 服务器地址。攻击者可利用此漏洞构造恶意链接,诱导用户点击“Authorize in GitLab”对话框后,弹出的页面将指向攻击者控制的主机而非合法的 gitlab.com。这可能导致用户凭证被窃取或会话状态令牌泄露。
该漏洞源于 draw.io 客户端对 URL 参数的不安全处理。在 OAuth 认证流程中,draw.io 允许通过 GET 请求参数 `gitlab` 动态指定授权端点。由于缺乏严格的校验机制,攻击者可以将此参数设置为恶意服务器地址。当用户访问包含恶意参数的 draw.io 链接并尝试通过 GitLab 登录时,应用程序会读取该参数值。用户点击授权按钮时,浏览器会向攻击者控制的服务器发起请求。攻击者随后可以模拟 GitLab 的登录界面,诱骗用户输入账号密码,或者捕获 OAuth 请求中的 state token 和 code,从而劫持用户会话。CVSS 向量为 AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:N/A:N,攻击需要用户交互,且利用复杂度较高。