已关闭
[Bug-Report|缺陷反馈]: torch_extension下的aclnn_common.h存在逻辑漏洞、易用性问题和安全漏洞 #2053
范其瑞创建于 4月24日关闭于 5月26日
4月24日 添加了label:bug-report
4月25日 将 wang-minbo 设为负责人
4月28日 关联了看板:Transformer
wang-minbo
4月28日 评论:
4月28日 评论:
您好,我们确认下问题点,立马修复


4月28日 将 yayahello 设为负责人
wang-minbo
5月7日 评论:
5月7日 评论:
此问题正在处理中,计划本周闭环


5月26日 关闭了 issue
5月26日 添加了label:resolved
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数据结构访问前做检查
Related log / screenshot / 日志 / 截图 (Mandatory / 必填)
无,走读代码即可
Special notes for this issue/备注 (Optional / 选填)