CVE-2026-33664Kestra是一款开源事件驱动编排平台,其在1.3.3及之前版本中存在存储型XSS漏洞。该漏洞源于系统未对用户提供的Flow YAML元数据进行充分过滤,直接通过Vue的v-html指令渲染HTML。攻击者可利用此漏洞在流程描述或输入名称中注入恶意JavaScript代码,一旦其他用户查看该流程,代码即在其浏览器中自动执行,从而窃取凭证或执行未授权操作。
该漏洞根因在于Kestra前端组件Markdown.vue的不安全渲染机制。当用户编辑Flow YAML时,特定字段(如description、inputs[].displayName、inputs[].description)的内容被传递给Markdown组件,该组件在实例化时启用了html: true选项。随后,生成的HTML字符串通过Vue.js的v-html指令直接注入到DOM中,且完全没有任何HTML清理或消毒机制。由于缺乏严格的输入验证和输出编码,攻击者可以在这些字段中构造包含恶意脚本(如<script>标签或带有onerror/onload事件的img标签)的Markdown/HTML内容。特别是inputs[].displayName字段,可实现零点击触发。这本质上是一个存储型XSS漏洞,一旦恶意Flow被保存到服务器,任何访问该页面的管理员或普通用户都会被迫执行攻击者的脚本,从而导致会话令牌被盗、账户劫持或敏感数据窃取。