#3126·flatpickr

通过传递给 Flatpickr 选项的不安全配置值引起的基于 DOM 的 XSS

作者: kanangandhi93创建于 2026年4月22日更新于 2026年8月14日
  • 总结: Flatpicker允许应用程序开发人员将配置值(如下个Arrow)直接传入DOM-已交付的UI元素. 如果这些值出自不可信来源(API,JSON config,或由用户控制的后端数据),它们可能会被解释为HTML并在浏览器中被执行,从而导致基于DOM的Cross-Site脚本(XSS).

  • 说明:

  • 整合Flatpickr的应用程序可能从后端服务或JSON文件中动态地加载配置,并在没有验证或消毒的情况下直接将值注入Flatpickr选项. 如果恶意角色控制了这些值,他们可以注入在DOM中被渲染的HTML有效载荷.

重现步骤(实例设想)

  1. 后端返回配置 : json: {"下个箭":"""}
  2. 前端直接传入平板电脑: 组件.ts 文件 : 平取器( 输入, {下个箭头: config. nextArrow } );
  3. 平板电脑在DOM中产生值。
  4. 有效载荷在浏览器上下文中执行。
  • 如果利用平板电脑在现实世界应用中发挥作用:

  • 基于DOM的XSS

  • 任意处决JavaScript

  • 会话/盗窃(如果可以使用)

  • UI操纵/喷雾

  • 完全折中SPA客户背景

  • 根源

  • 平接器接受类似 HTML 的原始配置值

  • 不默认实施消毒或编码

  • 开发者可能不知不觉地将不信任的数据传递到配置字段

  • 建议(针对维护者)

  • 文档风险明显地警告用户,在 DOM 语境中,配置字段可能作为 HTML 提供。

  • 鼓励安全默认

  • 建议:

  • 纯文本值

  • 图标系统而不是HTML字符串

  • 考虑消毒层(可选),可选地提供安全渲染模式或逃离帮助者.

内容来源: flatpickr/flatpickr