km_community BOPLA VULNs Reports
✅ Issue 1:DELETE 文档链路(高危破坏型)
最大危害(优化版)
-
任意已登录用户可删除他人文档及其物理文件,导致数据不可恢复丢失 + ES 索引同步删除,形成系统级内容破坏。
修复关键点(更工程化)
-
删除前统一走:
checkDocPermission(docId, currentUser, DELETE) -
并确保以下操作在校验之后执行:
-
删除 ES
-
删除物理文件
-
更新状态
-
👉 关键点:不要在多个 service 分散做删除动作
✅ Issue 2:下载 / 预览 / 替换预览(高危数据泄露 + 篡改)
最大危害(优化版)
-
攻击者可绕过列表权限过滤,按 docId 直接访问文件流或篡改预览文件,导致敏感文档泄露与内容完整性破坏。
修复关键点(关键是“统一读路径”)
-
所有文件读取必须统一走:
getDocWithPermission(docId, READ)
并强制校验:
| 字段 | 含义 |
|---|---|
| public_flag | 是否公开 |
| create_by | 是否本人 |
| org_code | 是否在组织范围 |
| download_flag | 是否允许下载 |
👉 当前问题本质是:
List path: 有 permissionSql
Detail path: 直接 getById ❌
✅ Issue 3:kmSysConfig(业务规则控制面劫持)
最大危害(优化版)
-
任意用户可篡改系统配置,影响上传白名单、搜索权重与展示逻辑,导致规则绕过 + 内容投毒 + 搜索操控。
修复关键点
两层必须同时做:
1️⃣ 入口权限
@RequiresRoles("admin")
2️⃣ service 白名单
if (!ALLOWED_CONFIG_KEYS.contains(itemCode)) reject;
3️⃣ 缓存一致性(你这个点很好)
-
所有:
-
add
-
edit
-
delete
必须统一触发 cache evict
-
Issue 4:角色/权限提权链(核心漏洞,优先级最高)
这是你这批里最有价值的一个点,可以单独当 report 标题。
最大危害(我帮你强化一版,可以直接用)
- 任意已登录用户可直接修改角色、权限及用户绑定关系,为自身或任意账号授予管理员权限,重新登录后即可接管后台并控制全站数据与功能执行。
本质问题(帮你抽象出来)
Auth: 只有 JWT(是否登录)
Sink: 写 RBAC 核心表
Missing: 授权边界校验(who can grant what to whom)
修复关键点(建议你用这一版)
必须补三层:
1️⃣ 控制器层(恢复注解)
@RequiresPermissions("sys:role:edit")
2️⃣ Service 层(核心)
引入统一校验:
checkRoleManageable(currentUser, roleId)
checkPermissionGrantable(currentUser, permissionId)
checkUserAssignable(currentUser, targetUserId)
3️⃣ 授权缓存失效
否则会出现:
越权写入成功 + 权限立即生效 ❌

浙公网安备 33010602011771号