Skip to main content
How Log4j Breaches Still Happen Three Years LaterIncident
4 min readFor Developers

How Log4j Breaches Still Happen Three Years Later

Persistent Vulnerabilities

Log4j vulnerabilities continue to surface in security assessments across production environments in 2024, despite the CVE-2021-44228 disclosure in December 2021. Your team may find Log4j in applications not because of direct dependencies, but due to transitive dependencies—libraries that import Log4j indirectly. Traditional vulnerability scanners flag these issues, but without exploit context, it's challenging to discern theoretical risks from actual threats.

Timeline of Events

December 2021: Apache discloses CVE-2021-44228 (Log4Shell), a remote code execution vulnerability in Log4j 2.x versions prior to 2.15.0. This vulnerability allows attackers to execute arbitrary code by exploiting JNDI lookup functionality.

December 2021 - January 2022: Organizations rush to patch direct dependencies, generating thousands of vulnerability tickets.

2022 - Present: Log4j persists in production due to:

  • Transitive dependencies in third-party libraries
  • Outdated internal libraries bundling vulnerable versions
  • Shadow dependencies in containerized applications
  • Archived projects still in deployment pipelines

Control Failures

The ongoing Log4j issue highlights four key control failures:

1. Incomplete Dependency Visibility

Your Software Bill of Materials (SBOM) likely covers direct dependencies but misses transitive ones. If your application imports library A, which imports library B, which imports Log4j 2.14.1, standard scanners may report this but can't confirm if your code invokes the vulnerable path.

2. Context-Free Vulnerability Prioritization

Scanners report every Log4j instance without reachability analysis. Your team may face 200 Log4j findings across microservices. Which are actually exploitable? Without exploit path mapping, you either patch everything (impractical) or make risky prioritization guesses.

3. Missing Ownership Attribution

Vulnerability reports often lack clear remediation ownership. Is it a platform team issue (base image), an application team issue (direct dependency), or a vendor issue (third-party SDK)? Delays in routing findings to the correct team extend exposure windows.

4. Alert Fatigue

With 2,000 vulnerability findings weekly, critical issues blend into noise. Log4j becomes "just another CVE" rather than a critical RCE vulnerability. Teams may stop investigating findings thoroughly.

Compliance Standards

PCI DSS v4.0.1 Requirement 6.3.2 mandates maintaining an inventory of bespoke, custom, and third-party software components, including:

  • Direct and transitive dependencies
  • Component version tracking
  • Known vulnerability status

Generating an SBOM quarterly is insufficient. Continuous dependency tracking with vulnerability correlation is necessary.

OWASP Top 10 2021: A06 - Vulnerable and Outdated Components advises:

  • Removing unused dependencies
  • Continuously inventorying component versions
  • Monitoring security bulletins for components in use
  • Obtaining components from official sources over secure links

OWASP ASVS v4.0.3 Requirement 14.2.3 states: "Verify that all components are up to date, preferably using a dependency checker during build or compile time."

ISO/IEC 27001:2022 Control 8.8 requires obtaining timely information about technical vulnerabilities, evaluating exposure, and taking appropriate measures. This means understanding which vulnerabilities are actually exploitable, not just present.

Actionable Steps for Your Team

Map Exploit Paths

Stop accepting reports that only confirm Log4j's presence. Implement reachability analysis to determine if an attacker can reach the vulnerable code from your application's entry points.

Action: Evaluate your scanner's reachability analysis capability. If lacking, request a proof-of-concept from vendors offering code property graph analysis. Test it against a known vulnerable application to verify it identifies unexploitable instances.

Continuous Dependency Tracking

Quarterly audits miss when a developer adds a new library that imports a vulnerable component.

Action: Add dependency scanning to your CI/CD pipeline to fail builds when:

  • New direct dependencies lack security review
  • Transitive dependencies introduce high-severity CVEs with known exploits
  • Dependencies are from non-approved repositories

Generate SBOMs in CycloneDX or SPDX format at build time.

Establish Clear Ownership

Create a decision tree to assign vulnerability findings based on dependency depth and component type:

  • Direct dependencies → Application team
  • Transitive dependencies from internal libraries → Library owner team
  • Base image vulnerabilities → Platform team
  • Third-party SDK vulnerabilities → Vendor management team

Action: Implement workflow automation to tag findings with ownership. Track mean time to assignment—if findings sit unassigned for more than 4 hours, refine your routing logic.

Set Exploitability-Based SLAs

A critical-severity CVE in an unreachable code path is less urgent than a medium-severity vulnerability in your authentication logic.

Action: Revise SLAs to include exploitability context:

  • Remotely exploitable from public endpoints + proof-of-concept available: 48 hours
  • Exploitable with authentication + no public exploit: 7 days
  • Present but unreachable: Next major version upgrade

Document exceptions when accepting risk on "present but unexploitable" findings, including the reachability analysis.

Reduce Dependency Count

Every dependency is a potential vulnerability vector. Avoid importing unnecessary libraries.

Action: Conduct a dependency audit. For each direct dependency, ask: "What functionality does this provide that we can't implement in 100 lines of code?" If the answer is logging, date formatting, or string manipulation, consider removing it. Track your total transitive dependency count and set a reduction goal.

By focusing on context-aware security tools and actionable vulnerabilities, your team can better manage the enduring threat of Log4j and similar issues.

Topics:Incident

You Might Also Like