ID: 688 類型:變量 |
狀態:草稿 |
描述
軟件調用函數、過程或例程,但調用方指定錯誤的變量或引用作爲參數之一,這可能導致未定義的行爲和結果弱點。
相關視圖
與“研究層面”視圖(CWE-1000)相關
與“開發層面”視圖(CWE-699)相關
引入模式
階段 |
說明 |
實現 |
此問題通常在打字錯誤或是拷貝粘貼錯誤時發生。 |
應用平臺
語言
C (出現的可能性不確定)
Perl (出現的可能性不確定)
後果
範圍 |
衝擊 |
可能性 |
其它 |
技術衝擊: 質量下降 |
示例
例1
在下面的java代碼段中,accessGranted()方法調用時候不小心以靜態ADMIN_ROLES數組作爲參數而沒有使用user roles作爲參數。
(問題代碼)
Example Language: Java
private static final String[] ADMIN_ROLES = ...;
public boolean void accessGranted(String resource, String user) {
String[] userRoles = getUserRoles(user);
return accessGranted(resource, ADMIN_ROLES);
}
private boolean void accessGranted(String resource, String[] userRoles) {
// grant or deny access based on user roles
...
}
應對措施
階段: 測試 由於此函數調用通常會產生不正確的行爲,因此通常會在測試或軟件正常運行期間檢測到它。在測試過程中,所有可能的控制路徑通常都會暴露出這個弱點,除非在極少數情況下,不正確的函數調用意外地產生正確的結果,或者如果提供的參數類型與預期的參數類型非常相似。 |
種屬
關係 |
類型 |
ID |
名稱 |
屬於 |
998 |