已关闭
[Bug-Report|缺陷反馈]: torch_extension下的aclnn_common.h存在逻辑漏洞、易用性问题和安全漏洞 #2053
范其瑞创建于  4月24日关闭于  5月26日
范其瑞
范其瑞成员
4月24日 创建

Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.

Describe the current behavior / 问题描述 (Mandatory / 必填)

kATenScalarTypeToAclDataTypeTable数组的定义和访问存在逻辑漏洞、易用性和安全风险:
1、逻辑漏洞:数组元素没有用初始化列表做完整初始化,导致未被初始化的部分被编译器填0,而不是无效值undefine,而fp32 dtype的枚举值刚好是0,业务逻辑在遇到不支持的ScalarType静默转fp32,check undefine判断失效
2、易用性问题:由于kATenScalarTypeToAclDataTypeTable是数组,增量添加dtype困难,要把中间缺失的dtype都补上
3、安全风险:kATenScalarTypeToAclDataTypeTable数组访问前未做检查,可能存在越界访问

Environment / 环境信息 (Mandatory / 必填)

A5

Steps to reproduce the issue / 重现步骤 (Mandatory / 必填)

走读代码:torch_extension/npu_ops_transformer/common/inc/aclnn_common.h
kATenScalarTypeToAclDataTypeTable数组定义,以及下面函数实现:
inline aclTensor *ConvertType(const at::Tensor &at_tensor)

Describe the expected behavior / 预期结果 (Mandatory / 必填)

1、逻辑漏洞:当前不支持的type在转acl dtype时要能拿到undefine,确保后续逻辑拦截
2、易用性问题:建议kATenScalarTypeToAclDataTypeTable改造成关联容器,方便添加离散dtype映射,避免添加一串映射
3、安全风险:kATenScalarTypeToAclDataTypeTable数据结构访问前做检查

无,走读代码即可

Special notes for this issue/备注 (Optional / 选填)

likedislike
范其瑞范其瑞成员
4月24日 添加了label:bug-report
Hhuang-chuhong成员
4月25日 将 wang-minbo 设为负责人
Hhuang-chuhong成员
4月28日 关联了看板:Transformer
wang-minbo成员
4月28日 评论:

您好,我们确认下问题点,立马修复

likedislike
Wwang-minbo成员
4月28日 将 yayahello 设为负责人
wang-minbo成员
5月7日 评论:

此问题正在处理中,计划本周闭环

likedislike
CANN-robotCANN-robot成员
5月26日 关闭了 issue
CANN-robotCANN-robot成员
5月26日 添加了label:resolved