CVE-2026-40035Unfurl在2025.08及之前的版本中存在严重的输入验证不当漏洞。该漏洞源于配置解析逻辑错误,将Flask应用的调试配置值作为字符串直接传递给run函数。由于非空字符串在Python中被视为真值,导致调试模式被意外启用。攻击者可利用此漏洞访问Werkzeug调试控制台,进而窃取敏感信息或在服务器上执行任意代码。
该漏洞的核心技术问题在于Python中布尔类型判断的特性。在受影响的Unfurl版本中,应用程序解析配置文件时,将debug参数作为字符串读取(例如配置为'False'或'0'),并未将其转换为布尔类型。随后,该字符串直接被传递给Flask框架的`app.run(debug=config_string)`函数。在Python逻辑中,任何非空字符串的布尔值均为`True`,因此即使管理员意图关闭调试功能,应用实际运行时调试模式仍处于开启状态。一旦Flask调试模式开启,Werkzeug调试器将介入处理异常。当应用发生错误或直接访问调试端点时,攻击者无需通过身份认证即可获得交互式Python调试控制台。利用该控制台,攻击者可以导入`os`或`subprocess`模块,执行任意系统命令,从而完全控制服务器。