データの長さとサイズが一致していません
データ サイズ引数が実際のデータ長から計算されない
説明
この欠陥は、バッファー オーバーフローから保護するために、memcpy、memset、memmove などのメモリ コピー関数の長さ引数とデータ バッファー引数がチェックされていない場合に発生します。
リスク
データ バッファーや長さの引数を攻撃者が操作できる場合、その攻撃者は、実際のデータ サイズをその長さより小さくすることによってバッファー オーバーフローを引き起こすことができます。
長さのこうした不一致のため、攻撃者は、データ バッファーに収まらないメモリを新しい場所にコピーできます。余剰分のメモリに機密情報が含まれている場合、攻撃者はそのデータにアクセスできるようになります。
この欠陥は、SSL Heartbleed バグと類似しています。
修正方法
メモリのコピーまたは操作を行う際、長さの引数をデータから直接計算して、サイズが一致するようにします。
例
結果情報
| グループ: セキュリティ |
| 言語: C | C++ |
| 既定値: オフ |
コマンド ライン構文: DATA_LENGTH_MISMATCH |
| 影響度: Medium |
バージョン履歴
R2015b で導入