# Citizen 粘贴按钮消息存储型XSS漏洞
## 概述
Citizen 是一个 MediaWiki 皮肤,用于将扩展集成到统一的界面体验中。版本 3.3.0 至 3.9.0 存在**存储型跨站脚本(XSS)漏洞**,影响其处理固定页眉按钮消息的方式。
## 影响版本
- 受影响版本:3.3.0 至 3.9.0
- 修复版本:3.9.0
## 细节
在 `stickyHeader.js` 的 `copyButtonAttributes` 函数中,函数将源元素的 `textContent` 赋值给目标元素的 `innerHTML`,用于复制按钮标签。这一操作导致系统消息中的**已转义 HTML 内容**(如 `citizen-share`, `citizen-view-history`, `citizen-view-edit`, `nstab-talk` 等)被当作原始 HTML 解析。
攻击者可通过编辑界面消息内容,注入**恶意脚本**。这些脚本在页面显示时将被执行,从而实现跨站脚本攻击。
## 影响
- 拥有 `editinterface` 权限但无 `editsitejs` 权限的用户(如默认的 sysop 组)能够执行任意 JavaScript。
- 攻击可导致:
- 劫持用户会话
- 获取敏感数据
- 执行未经授权的操作
此漏洞为攻击者提供了在其他用户浏览器上下文中执行脚本的能力,造成潜在严重的安全威胁。
| # | POC 描述 | 源链接 | 神龙链接 |
|---|
标题: Stored XSS in sticky header button messages · Advisory · StarCitizenTools/mediawiki-skins-Citizen · GitHub -- 🔗来源链接
标签: x_refsource_CONFIRM
神龙速读标题: fix(SECURITY): 🐛 fix stored XSS in sticky header button messages · StarCitizenTools/mediawiki-skins-Citizen@e006923 · GitHub -- 🔗来源链接
标签: x_refsource_MISC
神龙速读标题: feat(stickyHeader): ✨ re-implement sticky header (#1073) · StarCitizenTools/mediawiki-skins-Citizen@fbb1d4f · GitHub -- 🔗来源链接
标签: x_refsource_MISC
神龙速读暂无评论