C and C++ Binaries


BADFUNC.PATH._SPAWN : _spawn の使用

要旨

パスの引数を取る _spawn ファミリーの関数を使用しています。 これらの関数はパスの引数が安全に定義されていない場合、パスのなりすましに対して脆弱です。

プロパティ

クラス名 Use of _spawn
日本語クラス名 _spawn の使用
クラス分類 セキュリティ (security)
ニーモニック BADFUNC.PATH._SPAWN
カテゴリー
CWE CWE:676 Use of Potentially Dangerous Function
DISA-3r10 DISA-3r10:V-6157 The designer will ensure the application does not contain invalid URL or path references.
BSI BSI:Exec-SearchPath-01  
  BSI:Exec-SearchPath-02  
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっています。チェックを有効にするにはプロジェクト設定ファイル (configuration file)に以下の WARNING_FILTER ルールを追加してください。
WARNING_FILTER += allow class="Use of _spawn"
全ての BSI 固有の BADFUNC クラスを含む BSI 関連クラスを有効にするには、 bsi 設定プリセットを使用してください。

ワーニングを引き起こす関数

int _spawnl(int mode, const char *cmdname, const char *arg0, ...)
int _spawnle(int mode, const char *cmdname, const char *arg0, ...)
int _spawnlp(int mode, const char *cmdname, const char *arg0, ...)
int _spawnlpe(int mode, const char *cmdname, const char *arg0, ...)
int _spawnv(int mode, const char *cmdname, const char *const *argv)
int _spawnve(int mode, const char *cmdname, const char *const *argv, const char *const *envp)
int _spawnvp(int mode, const char *cmdname, const char *const *argv)
int _spawnvpe(int mode, const char *cmdname, const char *const *argv, const char *const *envp)
int _wspawnl(int mode, const wchar_t *cmdname, const wchar_t *arg0, ...)
int _wspawnle(int mode, const wchar_t *cmdname, const wchar_t *arg0, ...)
int _wspawnlp(int mode, const wchar_t *cmdname, const wchar_t *arg0, ...)
int _wspawnlpe(int mode, const wchar_t *cmdname, const wchar_t *arg0, ...)
int _wspawnv(int mode, const wchar_t *cmdname, const wchar_t *const *argv)
int _wspawnve(int mode, const wchar_t *cmdname, const wchar_t *const *argv, const wchar_t *const *envp)
int _wspawnvp(int mode, const wchar_t *cmdname, const wchar_t *const *argv)
int _wspawnvpe(int mode, const wchar_t *cmdname, const wchar_t *const *argv, const wchar_t *const *envp)

解決法

cmdname 引数が信頼されるソースからの完全な(ファイルの拡張子を含んだ)パス名が指定されている事を確認してください。

問題がないことを確認できた場合は、ワーニングの stateSuppressed (抑制)に変更して除外することができます。

関連のある設定ファイルパラメータ

このクラスは一般テンプレート設定ファイルで BAD_FUNCTION_* ルールセットによって実装されています。

設定ファイルの以下のパラメータがこのワーニングクラスのチェックに影響します。