このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
デバイス ファイルの I/O 動作が不適切です
セキュリティの脆弱性やシステム障害につながる可能性のある操作
説明
この欠陥は、ファイル名パラメーターを以下の関数に渡す前に、そのファイル名パラメーターでデバイス ファイルが参照されるかどうかをチェックしていない場合に発生します。
fopen()
fopen_s()
freopen()
remove()
rename()
CreateFile()
CreateFileA()
CreateFileW()
_wfopen()
_wfopen_s()
デバイス ファイルは、デバイス ドライバーにインターフェイスを提供するファイル システムのファイルです。これらのファイルを使用してデバイスを操作することができます。
デバイス ファイルの I/O 動作が不適切ですは、以下の場合には欠陥を報告しません。
上記にリストした関数を呼び出す前に、
stat
またはlstat
ファミリ関数を使用してファイル名パラメーターをチェックしている。文字列比較関数を使用して、ファイル名をデバイス ファイル名のリストに対して比較している。
リスク
通常のファイルに対してのみ適切な操作をデバイス ファイルに対して実行すると、サービス拒否攻撃、その他のセキュリティ脆弱性、またはシステム障害の原因になる可能性があります。
修正方法
ファイルに対して I/O 操作を実行する前に、以下を行います。
stat()
、lstat()
、または同等の関数を使用して、ファイル名パラメーターが通常のファイルを参照しているかどうかをチェックする。文字列比較関数を使用して、ファイル名をデバイス ファイル名のリストに対して比較する。
例
結果情報
グループ: セキュリティ |
言語: C | C++ |
既定値: オフ |
コマンド ライン構文: INAPPROPRIATE_IO_ON_DEVICE |
影響度: Medium |
バージョン履歴
R2018b で導入