汚染された値で制限されたループ
セキュリティで保護されないソース由来の値で制御されているループ
説明
この欠陥は、ループがセキュリティで保護されていないソースから取得された値に制限される場合に発生します。
リスク
汚染された値は、過剰ループや無限ループの原因となることがあります。攻撃者は、この脆弱性を利用して、プログラムを終了させたり、その他の想定外の動作を引き起こしたりする可能性があります。
修正方法
ループを開始する前に、その下限と上限を検証することによって、不明な境界と反復値を確認します。ループは、汚染された値の下限と上限の両方が検証されている場合にのみ実行します。汚染された値の下限と上限の両方が許容範囲内にあることを明示的にチェックします。または、汚染された値を飽和またはクランプします。
チェッカーの拡張
既定では、Polyspace® は外部ソースからのデータは汚染されていると仮定します。Polyspace 解析での汚染のソースを参照してください。Polyspace 解析の現在のスコープ以外から発生したすべてのデータを汚染されたものと見なすには、コマンド ライン オプション [-consider-analysis-perimeter-as-trust-boundary] を使用します。
例
結果情報
| グループ: 汚染されたデータ |
| 言語: C | C++ |
| 既定値: オフ |
コマンド ライン構文: TAINTED_LOOP_BOUNDARY |
| 影響度: Medium |
バージョン履歴
R2015b で導入