high · 已确认 · 已计入完成分可替换已校验 SDK 目录以 root 身份执行代码
在 SDK 父目录可被低权限账号修改的部署环境中,攻击者可在备份任务运行期间替换已校验的 SDK 路径,并以 root 身份执行恶意代码,从而获取备份凭证或篡改历史日志备份与恢复结果。
证据:scripts/ops/legacy_entity_log_oss_pilot.py:57 if os.geteuid() == 0:
for path in [root] + list(root.rglob('*')):
st = path.lstat()
if st.st_uid != 0 or st.st_mode & 0o022:
raise RuntimeError('SDK_DIRECTORY_NOT_ROOT_ONLY')
建议:校验 SDK 路径的所有父目录均由 root 独占且不可被其他用户写入,并消除摘要校验与模块加载之间的路径替换窗口,例如将已校验内容复制到新建的 root 专用目录后再加载。
medium · 已确认 · 已计入完成分排班修改记录会将旧备份日志标记为 CURRENT
使用排班修改记录的人员可能把旧备份日志误认为当前系统日志,无法正确判断记录来源和历史上下文,影响排班变更追溯。
证据:src/main/java/com/data/hemodialysis/model/response/EntityUpdateLogSearchItem.java:48 return from(row, "CURRENT");
建议:在排班查询链路中保留并传递旧日志来源,或让排班接口使用不包含来源字段的独立响应模型,避免把旧日志默认标为 CURRENT。
medium · 已确认 · 已计入完成分旧库来源标签可重复,响应唯一标识会冲突
两个旧备份来源存在相同日志 ID 且使用相同展示标签时,客户端按“来源加 ID”识别记录会发生冲突,可能造成记录混淆、覆盖或无法区分来源。
证据:src/main/resources/sql/migration/2026-10-09-entity-update-log-legacy-route.sql:10 source_code VARCHAR(128) NOT NULL,
source_server_uuid CHAR(36) NOT NULL,
source_database VARCHAR(64) NOT NULL,
source_label VARCHAR(32) NOT NULL,
建议:为对外返回的来源标识提供全局唯一且稳定的约束或发布前校验;若展示标签允许复用,应另行返回不暴露敏感信息的唯一来源键供客户端与日志 ID 组合使用。