程式碼安全測試第二十四期:數字型別的不正確轉換漏洞

zktq2021發表於2021-06-22

一、什麼是數字型別的不正確轉換?

從一種資料型別轉換為另一種資料型別(例如從long到int )時,會忽略部分資料,造成精度損失,甚至產生不可預期的數值。如果在敏感的上下文中使用結果值,則可能會發生危險行為。

二、數字型別的不正確轉換構成條件有哪些?

滿足以下條件,就構成了一個該型別的安全漏洞:

將一個數值從一種型別強制轉換為另一種型別,而又超出了目標型別的表示範圍,結果就會截斷成一個完全不同的值。

三、數字型別的不正確轉換會造成哪些後果?

該程式可能會使用錯誤的數字結束並生成錯誤的結果。如果該數字用於分配資源或做出安全決策,則可能會引入漏洞。

四、數字型別的不正確轉換的防範和修補方法有哪些?

1.避免在數字型別之間進行轉換;

2.始終檢查允許的範圍。

五、數字型別的不正確轉換漏洞樣例:

用悟空 靜態程式碼檢測工具分析 述程式程式碼,則可以發現程式碼中存在著“數字型別的不正確轉換” 導致的 程式碼缺陷,如下圖:

數字型別的不正確轉換在CWE中被編號為CWE-681:Incorrect Conversion between Numeric Types


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2777799/,如需轉載,請註明出處,否則將追究法律責任。

相關文章