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' の呼び出しを通じて書式文字列として使用できることを示します。