【问题标题】:does log4j2 has JNDI risk if you alway format your log如果您始终格式化日志,log4j2 是否有 JNDI 风险
【发布时间】:2022-01-16 02:42:22
【问题描述】:

如果总是格式化日志,log4j2有JNDI风险吗?

this.logger.info("your input code: {}。",code);

【问题讨论】:

    标签: log4j2 jndi


    【解决方案1】:

    该漏洞是由格式化的日志消息触发的,因此无论您是通过字符串连接、使用参数化的日志记录方法(如您的示例)还是以任何其他方式创建消息都无关紧要。
    所以是的,您的代码很可能很容易受到攻击。

    您可以通过运行轻松测试:

    String user = "${java:os}";
    logger.info("User '{}' logged in", user);
    

    但请注意,如果上述日志消息中的查找占位符未被替换,您不应认为您的应用程序是安全的。它还取决于您使用的日志记录布局。

    为了安全起见,您应该更新应用程序使用的 Log4j 2 版本,或者尝试security notes 中列出的其他缓解措施。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-06
      • 2022-07-11
      • 2012-08-19
      • 2016-07-08
      • 1970-01-01
      • 1970-01-01
      • 2013-01-06
      • 1970-01-01
      相关资源
      最近更新 更多