DEV Community

Composite
Composite

Posted on • Edited on

2

How to pass the Log4J2 Vulnerability, quickly!

Apache recommends update quickly to 2.15.0 but If your server is running with java 1.7 or older, DOH!
because log4j 2.15.0 requires Java 8 or later.

Don't worry. here's quick fix for you. your objective is DON'T LOOKUP AND PARSE JDNI LAYOUT FOR PREVENT REMOTE EXECUTION.

log4j.formatMsgNoLookups set to true

You just add system property; log4j.formatMsgNoLookups to true in your source(public static void main), java arguments, etc.
if you're using tomcat, add -Dlog4j.formatMsgNoLookups=true in CATALINA_OPTS. other servlet container app or server will have similar to container arguments to apply it.

this option requires log4j 2.10.0 or later.

%m{nolookups} in the PatternLayout

most apps have seperated log4j config file(xml, yaml, etc.) for manage log environment. it's simple. you should have PatternLayout for log format. just replace %m to %m{nolookups}.
that's it! and restart your app.

this options requires log4j 2.7.0 or later.

Hack log4j-core.jar

If your app have log4j perior to 2.6.x, it will pretty hard to patch it. You must remove JdniLookUp and JdniManager class from log4j-core.jar. you an create these class and fill dummy in your app, or manually build log4j on your own.

Go ahead! and secure your java app now!

References:

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay