编辑器模块连发越权公告,后台角色权限按什么口径收
同行 CMS 的编辑器模块连发越权公告,后台角色权限该按什么口径收口?口径不是把所有人的权限一并压低,而是按动作分层:谁能编辑正文、谁能提交、谁能对外发布,三件事分开归属。越权类公告的处置顺序也照这个走——先确认这个模块在站点上是否真的启用,再按动作收窄可执行范围,最后用发布前的审核链路兜住仍然敞开的入口。
公告里先读三件事
这条公告针对的是编辑器模块,问题类别写作 Access bypass,也就是访问绕过。页面里可以直接读到的字段如下,读公告时只按页面写明的内容判断,不去推测攻击路径。
| 字段 | 公告里的值 | 读法 |
|---|---|---|
| 问题类别 | Access bypass | 越权读写,不是代码执行 |
| 评级与分值 | 中等关键,十三比二十五 | 落在中间区间,不属最高危 |
| 攻击条件 | AC:Basic | 触发不苛刻 |
| 所需权限 | A:User | 需要普通用户身份,不是匿名可达 |
| 机密性与完整性 | 两者均记为部分受影响 | 既能读到不该读的,也能改不该改的 |
| 利用成熟度 | E:Theoretical | 公告标注为理论层面 |
| 受影响版本 | 低于 2.15.0,以及 3.0.0 到 3.0.7 之间 | 两条分支各有一段 |
| 处置建议 | 安装最新版本 | 只给版本动作,未给配置规避 |
「所需权限」记为用户这一项值得单独注意:它说明绕过发生在登录之后,攻击者需要先有一个可用账号。这类问题的收口重点因此落在账号能做什么,而不是账号怎么进来。
访问绕过与权限配置错误不是一回事
两类问题的修法相反。权限配置错误是系统给了某个角色超出需要的动作,修法是改配置;访问绕过是配置本来限制了动作,但代码在某条路径上没有校验,修法是升级或打补丁。
只看公告类别就能区分:这条写的是访问绕过,说明受影响版本里存在未校验的入口,把权限设置改得更严并不能让入口关闭——某些路径根本不去读权限表。反过来说,若站点确实需要放开某个动作,配置层面的收窄也不能替代升级。
两者的处置顺序仍然相同:先把不需要的动作从角色上摘下来,减少被未校验入口读到的面积,再按版本区间补上补丁。
模块没装时要不要跟
编辑器模块常随扩展一起装、不随扩展一起用。判断是否受影响,要看实际启用状态而不是安装目录是否存在:模块处于启用状态且版本落在公告的两段区间内,才需要立即升级;只是留在目录里没有启用,可以排进下一轮维护窗口。
值得跟的情况有两类。一是模块在前台提供可被普通用户调用的接口;二是站点上存在多个可登录的低权限账号。后者尤其关键,因为公告标注的所需权限就是普通用户级别——账号越多,可被利用的入口越多。
后台角色按动作分层
自有站点上,AnQiCMS 的用户管理与 VIP 分组支持为不同用户组设置访问权限,收口时可以按动作而不是按人头来划分。下面这张表是可直接照用的分层口径。
| 动作 | 该给谁 | 收口要点 |
|---|---|---|
| 建草稿 | 供稿用户组 | 只允许写草稿,不给对外可见状态 |
| 改正文 | 编辑用户组 | 限制可改栏目范围,避免跨栏目改写 |
| 传附件与图片 | 编辑用户组 | 与正文修改分开授权,防止用素材位绕过内容检查 |
| 提交审核 | 编辑用户组 | 提交不等于发布 |
| 对外发布 | 管理员用户组 | 只保留少量账号 |
| 删除与恢复 | 管理员用户组 | 与发布权限分人,避免自删自发 |
| 站点配置与模板 | 管理员用户组 | 普通账号一律不开放 |
关键在于「发布」这一步不能下放给所有供稿者。越权公告里机密性与完整性都记为部分受影响,说明绕过点能同时读和写;此时如果发布权限本身下放得过宽,读写的面积会叠加。
发布链路最后一道确认
补丁到位之前,发布链路是可用来自建的最后一道确认。AnQiCMS 的内容安全设置提供敏感词过滤与关键词替换,并配套内容审核,这层检查发生在内容对外可见之前,正好覆盖越权写入最常被使用的路径——把内容改到公开可见。
确认顺序建议这样走:先看未发布与草稿状态的正文有没有被公开读到,再看谁有把内容转为对外发布的权限,最后核对已发布内容里有没有非预期的改动。三段都干净,才说明绕过没有造成实际影响;只要有一段异常,就不能按「升级完就结束」收尾。
常见问题
普通用户权限很低,还需要管这条公告吗?
要看这个用户组具体能执行哪些动作。公告标注的所需权限就是普通用户级别,权限低不等于入口不存在;按上面的动作分层表把编辑、提交、发布三类动作逐一核对,比按角色名猜测更可靠。
改了权限配置能不能代替升级?
不能。访问绕过意味着某条路径上的校验缺失,配置层面的收紧只是减少暴露面积。升级或打补丁才是关闭入口的动作,两者要做全。
没有启用的模块要不要立刻升级?
可以排到维护窗口。先确认启用状态与版本段,再决定跟进节奏;但同一站点上其他启用的扩展要一起核对,避免只处理被公告点名的那一个。
怎么判断已经被人利用过?
从发布链路反查:核对草稿与未发布内容的可见性、发布动作的操作归属、正文里是否出现非预期的关键词替换结果。发现异常时先收窄发布权限,再补齐版本,最后做一轮完整备份留档。