暮光博客

小心你讨厌的东西,因为你很可能被它塑造成某种形状

Typecho v1.2.1-rc 的 XSS 漏洞

技术 6 条评论

3 月份 Typecho 被曝出评论区网址字段存在存储型 XSS 漏洞,详见 issue#1545,为此,官方释出了 v1.2.1-rc 解决该漏洞。

然而,v1.2.1-rc 版本未能完全修复该问题,评论区的邮箱字段同样存在存储型 XSS 漏洞。对此我 4 月份提交了 issue#1560pull#1561 以解决该漏洞,但此 PR 还未进行合并。

💬[2023-05-17] Typecho 在 v1.2.1-rc.2 版本合并了我的代码,该问题已得到解决。

影响范围

Typecho 版本:v1.2.0 ~ v1.2.1-rc

PS:版本低于 v1.2.0 的用户不受影响。

漏洞原因

漏洞原因我已在 issue#1560 进行说明,可以进去看看。大致原因是 v1.2.0 之后 Typecho 官方更新了评论网址和邮箱的字段验证器,但新的验证器使用了 PHP 的 filter_var() 方法,该方法作为验证器并不够严格,包含了恶意代码的值可以顺利通过校验。管理员在 Typecho 后台查看该评论时,恶意代码就会被执行,并进一步完成提权等恶意操作。

POC

POC 同样参见 issue#1560

解决方案

在官方发布版本彻底修复该漏洞前,请按照以下思路进行修复:

使用 v1.2.0 的用户,请先升级到 v1.2.1-rc,然后按照 pull#1561 进行修复。
使用 v1.2.1-rc 的用户,直接按照 pull#1561 进行修复。

在问题修复前,建议临时关闭评论功能,以避免可能的攻击。

评论区
选择表情选择表情
  1. 微波卢

    icon_exclaim.gif

    回复
  2. 这问题得重视,找个时间打补丁去。

    回复
  3. 唉,N年不更新,一更新了出问题了。

    回复
    1. @老张博客

      是啊,老版本反而没问题。

      回复
  4. 首次抢到沙发!

    回复
    1. 回复