文件最后提交记录最后更新时间
Fix #231: Complete security validation with zero-overhead device checks Co-authored-by: suqwe<sujianjia@huawei.com> # message auto-generated for no-merge-commit merge: !306 merge fix-issue-231-port-validation into master Fix #231: Complete security validation with zero-overhead device checks Created-by: suqwe Commit-by: suqwe Merged-by: cann-robot Description: #描述 ## Problems Fixed (6 Security Issues) This PR addresses all 6 security vulnerabilities reported in Issue #231. ### ✅ Problem 0 & 1: Port Parsing Validation (CWE-197) **Files**: - src/host/bootstrap/shmemi_bootstrap_uid.cpp - src/host/init/shmem_init.cpp **Issue**: std::stoi() result directly cast to uint16_t without range check - Truncation: 65536→0, -1→65535 - Security impact: unexpected port binding **Fix**: Parse to int, validate [0,65535], error logging, safe cast --- ### ✅ Problem 2: ASCEND_HOME_PATH Library Loading (CWE-426) **File**: src/host/entity/mem_entity_entry.cpp **Issue**: Environment variable controls library loading path - No owner/permission validation - Attackers can load malicious .so **Fix**: Added IsOwnedByCurrentUserOrRoot + HasSecurePermissions checks --- ### ✅ Problem 3: SHMEM_LOG_PATH Log Directory (CWE-73) **File**: src/host/utils/log/shmemi_logger.cpp **Issue**: Environment variable controls log directory - No realpath/owner/permission validation - Attackers can redirect logs to arbitrary paths **Fix**: Added Realpath + owner/permission checks with fallback to /tmp/shmem/log --- ### ✅ Problem 4: GetFileSize() ftell() Error (CWE-197) **File**: src/host/utils/shmemi_file_util.h **Issue**: ftell() returns -1L on failure, cast to SIZE_MAX - Wrong file size propagates downstream **Fix**: Check ftell() == -1L, return 0 on error --- ### ✅ Problem 5: sysconf() Truncation + VLA Overflow (CWE-119) **File**: src/host/utils/log/shmemi_logger.cpp **Issue**: - int truncates sysconf() long result - VLA char buffer[bufsize] non-standard - negative bufsize in memset causes overflow **Fix**: Use long, validate range, replace VLA with std::vector --- ### ✅ Problem 6: PE Array Access (CWE-129) **File**: src/device/gm2gm/engine/shmem_device_rdma.hpp **Issue**: pe parameter unvalidated, causes OOB read - pe < 0 or pe >= npes causes memory corruption **Fix**: Device不进行校验 --- ## 🔐 New Security Functions Added 3 reusable validation functions: 1. **IsOwnedByCurrentUserOrRoot(path)** - Check if path owner is current user or root - Prevent loading from untrusted paths 2. **HasSecurePermissions(path)** - Check no write permission for group/others - Prevent tampering with files --- ## 🚀 Device Performance Optimization **Zero-overhead design**: Device不进行校验 --- ## ✅ Testing Results ✅ Port validation: [0,65535] accepted, out-of-range rejected ✅ Path owner: current user/root accepted, others rejected ✅ Path permissions: secure accepted, insecure rejected ✅ ftell() error: returns 0 instead of SIZE_MAX ✅ sysconf() range: validates bufsize <= 1MB --- Fixes #231 See merge request: cann/shmem!30615 天前
adapt mssanitizer new flags Co-authored-by: huangxiaolan<huangxiaolan7@huawei.com> # message auto-generated for no-merge-commit merge: !373 merge fix_mssanitizer_flags into master 适配 mssanitizer 工具新flags Created-by: huangxiaolan Commit-by: huangxiaolan Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 适配 mssanitizer 工具新flags ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> 关联Issue [#273](https://gitcode.com/cann/shmem/issues/273) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:适配工具修改 See merge request: cann/shmem!3733 天前
barrier接口 支持mssanitizer竞争检测 Co-authored-by: zhangyunqi<zhangyunqi5@huawei.com> # message auto-generated for no-merge-commit merge: !205 merge mstxbarrier into master barrier接口 支持mssanitizer竞争检测 Created-by: zhangyunqi Commit-by: zhangyunqi Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> barrier接口支持mssanitizer竞争检测,p2p不包含 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/shmem/issues/62 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ![image.png](https://raw.gitcode.com/user-images/assets/8546182/134a4bc5-f7b3-474b-9f84-78f1fda87173/image.png 'image.png') ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!2052 个月前
【fix】从v1.3.0分支引入vmmBasedSegment 虚拟内存分配机制,修复AICPU算子加载失败问题 + 多实例问题 Co-authored-by: james88liu<liujianxing1@huawei.com> Co-authored-by: zhu-wangyi<zhuwangyi@huawei.com> Co-authored-by: zhangyunqi<zhangyunqi5@huawei.com> # message auto-generated for no-merge-commit merge: !404 merge bug_fix/multi_instance_fix into master 【fix】从v1.3.0分支引入vmmBasedSegment 虚拟内存分配机制,修复AICPU算子加载失败 + 多实例问题 Created-by: zhu-wangyi Commit-by: zhu-wangyi;zhangyunqi;james88liu Merged-by: cann-robot Description: ## 描述 引入v1.3.0对底层虚拟内存申请的修改,修复多实例冲突问题,修复AICPU算子加载失败问题。 ## 关联的Issue https://gitcode.com/cann/shmem/issues/207 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!4047 分钟前
Fix #231: Complete security validation with zero-overhead device checks Co-authored-by: suqwe<sujianjia@huawei.com> # message auto-generated for no-merge-commit merge: !306 merge fix-issue-231-port-validation into master Fix #231: Complete security validation with zero-overhead device checks Created-by: suqwe Commit-by: suqwe Merged-by: cann-robot Description: #描述 ## Problems Fixed (6 Security Issues) This PR addresses all 6 security vulnerabilities reported in Issue #231. ### ✅ Problem 0 & 1: Port Parsing Validation (CWE-197) **Files**: - src/host/bootstrap/shmemi_bootstrap_uid.cpp - src/host/init/shmem_init.cpp **Issue**: std::stoi() result directly cast to uint16_t without range check - Truncation: 65536→0, -1→65535 - Security impact: unexpected port binding **Fix**: Parse to int, validate [0,65535], error logging, safe cast --- ### ✅ Problem 2: ASCEND_HOME_PATH Library Loading (CWE-426) **File**: src/host/entity/mem_entity_entry.cpp **Issue**: Environment variable controls library loading path - No owner/permission validation - Attackers can load malicious .so **Fix**: Added IsOwnedByCurrentUserOrRoot + HasSecurePermissions checks --- ### ✅ Problem 3: SHMEM_LOG_PATH Log Directory (CWE-73) **File**: src/host/utils/log/shmemi_logger.cpp **Issue**: Environment variable controls log directory - No realpath/owner/permission validation - Attackers can redirect logs to arbitrary paths **Fix**: Added Realpath + owner/permission checks with fallback to /tmp/shmem/log --- ### ✅ Problem 4: GetFileSize() ftell() Error (CWE-197) **File**: src/host/utils/shmemi_file_util.h **Issue**: ftell() returns -1L on failure, cast to SIZE_MAX - Wrong file size propagates downstream **Fix**: Check ftell() == -1L, return 0 on error --- ### ✅ Problem 5: sysconf() Truncation + VLA Overflow (CWE-119) **File**: src/host/utils/log/shmemi_logger.cpp **Issue**: - int truncates sysconf() long result - VLA char buffer[bufsize] non-standard - negative bufsize in memset causes overflow **Fix**: Use long, validate range, replace VLA with std::vector --- ### ✅ Problem 6: PE Array Access (CWE-129) **File**: src/device/gm2gm/engine/shmem_device_rdma.hpp **Issue**: pe parameter unvalidated, causes OOB read - pe < 0 or pe >= npes causes memory corruption **Fix**: Device不进行校验 --- ## 🔐 New Security Functions Added 3 reusable validation functions: 1. **IsOwnedByCurrentUserOrRoot(path)** - Check if path owner is current user or root - Prevent loading from untrusted paths 2. **HasSecurePermissions(path)** - Check no write permission for group/others - Prevent tampering with files --- ## 🚀 Device Performance Optimization **Zero-overhead design**: Device不进行校验 --- ## ✅ Testing Results ✅ Port validation: [0,65535] accepted, out-of-range rejected ✅ Path owner: current user/root accepted, others rejected ✅ Path permissions: secure accepted, insecure rejected ✅ ftell() error: returns 0 instead of SIZE_MAX ✅ sysconf() range: validates bufsize <= 1MB --- Fixes #231 See merge request: cann/shmem!30615 天前
适配A5 new HDK for mte Co-authored-by: james88liu<liujianxing1@huawei.com> # message auto-generated for no-merge-commit merge: !93 merge br_fix_cann_build into master 适配A5 new HDK for mte Created-by: james88liu Commit-by: james88liu Merged-by: cann-robot Description: ## 描述 适配A5硬件,并基于新硬件调试mte接口示例 ## 关联的Issue https://gitcode.com/cann/shmem/issues/104 ## 测试 ![image.png](https://raw.gitcode.com/user-images/assets/8546182/4005e03c-98e8-466a-8d6c-c04e7fe43934/image.png 'image.png') A5: ![image.png](https://raw.gitcode.com/user-images/assets/8546182/e7cf810b-795a-450d-9b6a-fa214998f755/image.png 'image.png') ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!933 个月前
[Feature] Multi Instance 1.0 Co-authored-by: zhu-wangyi<zhuwangyi@huawei.com> # message auto-generated for no-merge-commit merge: !155 merge feature/multi_instance_master into master SHMEM多实例特性添加 Created-by: zhu-wangyi Commit-by: zhu-wangyi Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 新增init uid多实例测试结果 ![image.png](https://raw.gitcode.com/user-images/assets/8546182/59500283-8a43-4bfb-bf3f-4dc2b9878954/image.png 'image.png') ![image.png](https://raw.gitcode.com/user-images/assets/8546182/9cb90e7f-af71-4721-a7b6-fc1b01f8f41e/image.png 'image.png') h2d能力测试结果 ![image.png](https://raw.gitcode.com/user-images/assets/8546182/b5ea6823-2a08-4f95-bdca-d9b0990686a3/image.png 'image.png') h2d多实例测试结果 ![image.png](https://raw.gitcode.com/user-images/assets/8546182/99ec9b9f-d0f9-44ba-b1c0-efe762f0146c/image.png 'image.png') python_extension测试结果 ![image.png](https://raw.gitcode.com/user-images/assets/8546182/b81dadcd-c7e6-4d65-aad3-0c7b2f77570c/image.png 'image.png') ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!1552 个月前
fix cann build & readme文档更新 Co-authored-by: james88liu<liujianxing1@huawei.com> # message auto-generated for no-merge-commit merge: !89 merge br_fix_cann_build into master fix cann build & readme文档更新 Created-by: james88liu Commit-by: james88liu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/shmem/issues/64 https://gitcode.com/cann/shmem/issues/65 https://gitcode.com/cann/shmem/issues/66 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!894 个月前
config_store使用模式更新,并入bootstrap逻辑 Co-authored-by: zhu-wangyi<zhuwangyi@huawei.com> # message auto-generated for no-merge-commit merge: !109 merge master into master config_store使用模式更新,并入bootstrap逻辑 Created-by: zhu-wangyi Commit-by: zhu-wangyi Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 全量测试 ![image.png](https://raw.gitcode.com/user-images/assets/8546182/507372bd-b23f-48bd-ba76-e1e1f506df6c/image.png 'image.png') ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!1093 个月前
修复编译问题:error: unknown type name 'uint8_t' Co-authored-by: jiang-xinyu3<jiangxinyu3@hisilicon.com> # message auto-generated for no-merge-commit merge: !151 merge cstdint into master 修复编译问题:error: unknown type name 'uint8_t' Created-by: jiangxinyu3 Commit-by: jiang-xinyu3 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!1513 个月前
支持SDMA特性 Co-authored-by: jiang-xinyu3<jiangxinyu3@hisilicon.com> Co-authored-by: vector5<caobingjie@huawei.com> # message auto-generated for no-merge-commit merge: !101 merge sdma into master 支持SDMA特性 Created-by: jiangxinyu3 Commit-by: jiang-xinyu3;vector5 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 关联Issue #58 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> [examples](http://image.huawei.com/tiny-lts/v1/images/hi3ms/d739b4802bcf078a130014d2394fd91f_882x665.png) [UT](http://image.huawei.com/tiny-lts/v1/images/hi3ms/3bc2ce6d8b83a01842353c2061ec1747_1020x403.png) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!1013 个月前
适配A5 new HDK for mte Co-authored-by: james88liu<liujianxing1@huawei.com> # message auto-generated for no-merge-commit merge: !93 merge br_fix_cann_build into master 适配A5 new HDK for mte Created-by: james88liu Commit-by: james88liu Merged-by: cann-robot Description: ## 描述 适配A5硬件,并基于新硬件调试mte接口示例 ## 关联的Issue https://gitcode.com/cann/shmem/issues/104 ## 测试 ![image.png](https://raw.gitcode.com/user-images/assets/8546182/4005e03c-98e8-466a-8d6c-c04e7fe43934/image.png 'image.png') A5: ![image.png](https://raw.gitcode.com/user-images/assets/8546182/e7cf810b-795a-450d-9b6a-fa214998f755/image.png 'image.png') ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!933 个月前