SV.TAINTED.FMTSTR
未検証入力 - 信頼されないデータが書式文字列として使用されます。
脆弱性とリスク
SV.TAINTED.ALLOC_SIZE を参照してください。
軽減と防止
SV.TAINTED.ALLOC_SIZE を参照してください。
例
コピー
#define TKS_MAXBUFFER 1024
int check_tklines(char *host, char *user, int lifetime) {
FILE *iconf, *iconf_tmp;
//...
if ((iconf = fopen(CPATH, "r")) && (iconf_tmp = fopen(TKSERV_IRCD_CONFIG_TMP, "w"))){
char buffer[TKS_MAXBUFFER];
while (fgets(buffer, TKS_MAXBUFFER, iconf)){
if ((*buffer != 'K') || (!strstr(buffer, "tkserv"))){
fprintf(iconf_tmp, buffer);
}
//...
}
}
return 0;
}
Klocwork は 10 行目で指摘レポートを生成し、未検証文字列 'buffer' が 8 行目での 'fgets' の呼び出しを通じて渡され、10 行目での 'fprintf' の呼び出しを通じて書式文字列として使用できることを示します。