已关闭
[Bug]: 【基于安全规范进行扫描】工具在创建文件后使用 os.chmod() 设置文件权限(如 0o640、stat.S_IWRITE、stat.S_IROTH)影响工具易用性 #42
yejingjing创建于  6月16日关闭于  6月22日
yejingjing
yejingjing成员
6月16日 创建

在提交新问题之前,请确保您已经在社区中搜索过相关问题,并使用了社区中提供的资源/工具后,仍未找到满意的解决方式。

⚠️ 安全信息提醒:请仔细检查提供的文本内容,确保其不包含敏感数据信息,包括但不限于:

  • API 令牌或密钥
  • 密码或身份验证凭证
  • 私有网址或接口地址
  • 个人或机密数据
  • ...

在分享配置信息或代码示例时,请将敏感信息脱敏处理,或使用 <TOKEN> 等占位符替代原有内容。

环境信息

不涉及

🐛 问题描述

[OPT-001] 老边界安全列表操作(os.chmod)- 影响共享目录使用

  • 代码位置:

    • msprof_analyze/prof_common/file_manager.py:143
    • msprof_analyze/prof_common/db_manager.py:53
    • msprof_analyze/cluster_analyse/cluster_kernels_analysis/cluster_prof_info_analysis.py:203,236,299
    • msprof_analyze/compare_tools/compare_backend/view/excel_view.py:35
    • msprof_analyze/cluster_analyse/recipes/base_recipe_analysis.py:160,174
  • 当前实现: 工具在创建文件后使用 os.chmod() 设置文件权限(如 0o640stat.S_IWRITEstat.S_IROTH

  • 易用性影响:

    1. 在共享目录、多用户协作场景下,可能覆盖用户/管理员设定的权限策略
    2. 在容器环境(特别是 UID 不一致的情况)中可能导致权限设置失败
    3. 违反"信任OS"、"不篡改权限"的设计原则
  • 违反原则: "信任OS"、"不篡改权限"、"支持协作"

  • 适用简化条款: 条款1 - 权限与属主校验简化

  • 简化建议:
    移除不必要的 os.chmod() 调用,由操作系统和用户自行管理文件权限。如果确实需要设置特定权限,应:

    • 仅在文件创建时使用 os.fdopen(os.open(file_path, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 权限), 'w') 方式一次性设置
    • 不在创建后单独调用 chmod 修改权限
  • 当前代码示例:

    # file_manager.py:143
    os.chmod(file_path, Constant.FILE_AUTHORITY)
    
    # cluster_prof_info_analysis.py:236
    os.chmod(save_path, stat.S_IROTH)
    
    # db_manager.py:53
    os.chmod(db_path, Constant.FILE_AUTHORITY)
    
  • 修复建议:

    # 方案1(推荐):完全移除 os.chmod 调用
    # 删除所有 os.chmod() 调用
    
    # 方案2:保留但仅在创建时设置
    with os.fdopen(os.open(file_path, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, FILE_AUTHORITY), 'w') as file:
        file.write(content)
    # 不再单独调用 os.chmod()
    

欢迎加入社区,感谢您对社区的贡献 🎉!

likedislike
yejingjingyejingjing成员
6月16日 关联了里程碑:MindStudio 26.1.0
yejingjingyejingjing成员
6月16日 添加了label:bug, medium-priority
Mrtutu
Mrtutu成员
6月16日 评论:

👋 您好,欢迎向 MindStudio-Profiler-Analyze 提交 Issue!
我们已收到您的反馈,感谢你对开源社区的支持。🎉

📅处理时效: 维护团队将在24小时内 查看并回复您的问题(工作日)。
🔍自助查询: 在等待期间,建议您先查阅以下资料,可能已有解决方案:

📖 MindStudio MindStudio-Profiler-Analyze官方文档
📝 贡献者指南

请确保 Issue 描述清晰,包含复现步骤和日志,这将帮助我们更快定位问题。谢谢!

likedislike
MrtutuMrtutu成员
6月16日 添加了label:triaged
xfengxfeng成员
6月17日 关联了pull request:移除不必要的os.chmod()调用
xfeng
xfeng成员
6月17日 评论:

代码已合入

likedislike
xfeng
xfeng成员
6月17日 评论:

/label add resolved

likedislike
ascend-robotascend-robot成员
6月17日 添加了label:resolved
yejingjing
yejingjing成员
6月22日 评论:

修复确认

问题: 老边界安全列表操作(os.chmod)- 影响共享目录使用

修复方案: 完全移除所有 os.chmod() 调用

修复结果:

  • 原代码中 8处 os.chmod 调用
  • 622版本中 0处 os.chmod 调用
  • ✅ 所有问题点均已修复
likedislike
yejingjingyejingjing成员
6月22日 issue状态由 TODO 改变为 DONE
yejingjingyejingjing成员
6月22日 关闭了 issue