信頼できないループ境界

信頼できない値がループ境界として使用されています。

入力操作などにより、値が外からプログラムに投入された場合、"tainted" (信頼できない) ものとみなされます。セキュリティー攻撃では、しばしば悪意のあるユーザーにより、プログラムのエントリーポイントに変わった値が配置されるため、信頼できない値には注意する必要があります。この診断では、信頼できない値がループ境界として使用されています。これにより、悪意のあるユーザーは膨大な数のループの繰り返しを実行するプログラムを起動することができます。これは、少なくとも長時間を消費するため、アプリケーションへのサービスが拒否される可能性があります。

値を使用する前にチェックされていることが明らかな場合は、信頼できないものとして認識されません。

ID

問題箇所

説明

1

メモリー読み取り

信頼できない値が使用された場所

2

呼び出し位置

信頼できない値が取得された呼び出し


#include <stdio.h>

int main(int argc, char **argv)
{
    int upper, i;

    upper = atoi(argv[1]);

    // upper is unvalidated value so
    // this loop could run a LONG time
    for (i = 0; i < upper; i++) {
       printf("i = %d\n", i);
    }
}
        

© 2010 Intel Corporation. 無断での引用、転載を禁じます。