簡體   English   中英

在 Veracode 中使用 slf4j LOGGER 時的 CRLF 注入漏洞(CWE 117)

[英]CRLF Injection vulnerability while using slf4j LOGGER in Veracode (CWE 117)

這是一個 slf4j 記錄器,我一直在嘗試用 2 個消息參數記錄錯誤。

catch(ExecutionException executionException) {

LOGGER.error("TimeoutException caught , Error: " + SSG_TIMEOUT.getErrorText() 
       + ". Message: " +executionException.getMessage());    
}  

SSG_TIMEOUT.getErrorText()結果為字符串"TimeOut error encountered" SSG_TIMEOUT.getErrorText() "TimeOut error encountered"

我用過的東西

  1. 手動清理代碼

    return entry.replace("\\t", "\\\\t").replace("\\b", "\\\\b").replace("\\n", "\\\\n").replace("\\r", "\\\\r").replace("\\f", "\\\\f").replace("\", "\\\\0").replace("\\\\a", "\\\\a").replace("\\\\v", "\\\\v").replace("\\\\e", "\\\\e").replaceAll("\\\\p{Cntrl}", "").replace("'", "\\\\'").replace("\\"", "\\\\\\"").replace("\\\\", "\\\\\\\\");
  2. StringEscapeUtils.escapeJson(String errorMessage)

  3. 字符串生成器追加字符串 + escapeJson(StringBuilder.toString())

我仍然在我的 veracode 報告中看到了這個問題。

有什么建議么?

首先,前兩種清理方法是正確的,只是 Veracode 不支持。

在使用一種方法之前,應該訪問https://help.veracode.com/r/review_cleansers 中的About Supported Cleansing Functions

因此,對於上述問題StringUtils.normalizeSpace()有效。 也可以使用“StringUtils.escapeJava”,但它似乎已被棄用

索恩:

    catch(ExecutionException executionException) {

    LOGGER.error("TimeoutException caught , Error: " + 
    StringUtils.normalizeSpace(SSG_TIMEOUT.getErrorText() 
    }  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM