数字类型的不正确转换漏洞

一、什么是数字类型的不正确转换?

从一种数据类型转换为另一种数据类型(例如从long到int )时,会忽略部分数据,造成精度损失,甚至产生不可预期的数值。如果在敏感的上下文中使用结果值,则可能会发生危险行为。

二、数字类型的不正确转换构成条件有哪些?

满足以下条件,就构成了一个该类型的安全漏洞:

将一个数值从一种类型强制转换为另一种类型,而又超出了目标类型的表示范围,结果就会截断成一个完全不同的值。

三、数字类型的不正确转换会造成哪些后果?

该程序可能会使用错误的数字结束并生成错误的结果。如果该数字用于分配资源或做出安全决策,则可能会引入漏洞。

四、数字类型的不正确转换的防范和修补方法有哪些?

1.避免在数字类型之间进行转换;

2.始终检查允许的范围。

五、数字类型的不正确转换漏洞样例:

1-1.jpg

悟空 静态代码检测工具分析 上述程序代码,则可以发现代码中存在着“数字类型的不正确转换” 导致的 代码缺陷,如下图:

2-1.jpg

数字类型的不正确转换在CWE中被编号为CWE-681:Incorrect Conversion between Numeric Types


本文作者:中科天齐软件安全

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/170383.html

Tags:
评论  (0)
快来写下你的想法吧!

中科天齐软件安全

文章数:95 积分: 45

WuKong软件源代码静态检测工具,为客户在软件开发过程中查找、识别、追踪绝大部分主流编码中的技术漏洞与逻辑漏洞,帮助用户提升抵御网络攻击。

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号