LiveActive security incident?Get immediate response
CVE Record

CVE-2026-24400: AssertJ has XML External Entity (XXE) vulnerability when parsing untrusted XML via isXmlEqualTo assertion

AssertJ provides Fluent testing assertions for Java and the Java Virtual Machine (JVM). Starting in version 1.4.0 and prior to version 3.27.7, an XML External Entity (XXE) vulnerability exists in `org.assertj.core.util.xml.XmlStringPrettyFormatter`: the `toXmlDocument(String)` method initializes `DocumentBuilderFactory` with default settings, without disabling DTDs or external entities. This formatter is used by the `isXmlEqualTo(CharSequence)` assertion for `CharSequence` values. An application is vulnerable only when it uses untrusted XML input with either `isXmlEqualTo(CharSequence)` from `org.assertj.core.api.AbstractCharSequenceAssert` or `xmlPrettyFormat(String)` from `org.assertj.core.util.xml.XmlStringPrettyFormatter`. If untrusted XML input is processed by tone of these methods, an attacker couldnread arbitrary local files via `file://` URIs (e.g., `/etc/passwd`, application configuration files); perform Server-Side Request Forgery (SSRF) via HTTP/HTTPS URIs, and/or cause Denial of Service via "Billion Laughs" entity expansion attacks. `isXmlEqualTo(CharSequence)` has been deprecated in favor of XMLUnit in version 3.18.0 and will be removed in version 4.0. Users of affected versions should, in order of preference: replace `isXmlEqualTo(CharSequence)` with XMLUnit, upgrade to version 3.27.7, or avoid using `isXmlEqualTo(CharSequence)` or `XmlStringPrettyFormatter` with untrusted input. `XmlStringPrettyFormatter` has historically been considered a utility for `isXmlEqualTo(CharSequence)` rather than a feature for AssertJ users, so it is deprecated in version 3.27.7 and removed in version 4.0, with no replacement.

HighCVSS 8.2Not KEV-listedUpdated
Glexia's TakeAutomated analysishigh

Security readout for executives and security teams

Plain-English summary

AssertJ, a Java testing assertion library, can parse XML unsafely in specific assertion and formatting methods. If a project feeds attacker-controlled XML into those methods, the parser may expose local files, trigger internal network requests, or cause resource exhaustion. This is most urgent for CI, test harnesses, or tools that evaluate untrusted XML.

Executive priority

Prioritize remediation where AssertJ is used in CI, testing services, or tooling that processes user-supplied XML. For internal-only tests with fixed XML fixtures, urgency is lower, but upgrading remains prudent because the affected API is deprecated and slated for removal.

Technical view

CVE-2026-24400 is a CWE-611 XXE issue in AssertJ versions 1.4.0 through before 3.27.7. `XmlStringPrettyFormatter.toXmlDocument(String)` uses default `DocumentBuilderFactory` settings. It is reached via `isXmlEqualTo(CharSequence)` and `xmlPrettyFormat(String)` when processing untrusted XML. AssertJ recommends XMLUnit, upgrading to 3.27.7, or avoiding these methods with untrusted input.

Likely exposure

Exposure is limited to Java/JVM projects using affected AssertJ versions and passing untrusted XML into `isXmlEqualTo(CharSequence)` or `xmlPrettyFormat(String)`. Many uses of AssertJ in ordinary unit tests may not be exposed if inputs are static and trusted.

Exploitation context

No active exploitation is indicated in the provided sources, and the CVE is not marked KEV. Successful abuse requires a path where an attacker can influence XML processed by the affected AssertJ methods, typically in tests, validation tooling, CI jobs, or developer-facing utilities.

Researcher notes

The advisory identifies version range, affected methods, impact classes, and preferred remediation. Evidence does not show broad runtime exposure by default; reachability analysis is essential. The CVSS vector indicates local attack vector and low complexity, but business risk depends heavily on whether untrusted XML reaches these testing utilities.

Mitigation direction

  • Replace `isXmlEqualTo(CharSequence)` with XMLUnit where practical.
  • Upgrade AssertJ to version 3.27.7 or later.
  • Avoid affected methods with untrusted XML input.
  • Review vendor advisory and release notes for project-specific guidance.
  • Apply OWASP XXE prevention guidance where XML parsing remains necessary.

Validation and detection

  • Inventory AssertJ versions in Java/JVM dependency manifests.
  • Search code for `isXmlEqualTo(CharSequence)` usage.
  • Search code for `XmlStringPrettyFormatter` or `xmlPrettyFormat(String)` usage.
  • Determine whether any matching usage receives untrusted XML.
  • Confirm upgraded builds resolve AssertJ below 3.27.7.
  • Verify replacement XML comparisons use hardened XML parsing defaults.
Prepared
Confidence
high
Sources
6

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · low confidence lookup

CWE-611: Exact CWE lookup

Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
description · low confidence lookup

Cloud metadata behavior lookup

The CVE wording references SSRF or metadata access, so cloud discovery and credential material review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2026-24400 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
High
CVSS
8.2 (4.0)
Known Exploited
No
Published

Vector: CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:L/SC:H/SI:N/SA:N

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
0Timeline events
0ADP providers
5Source links

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
8.2CVSS 4.0HighCVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:L/SC:H/SI:N/SA:N——Primary CVE score

Vulnerability scoring details

Base CVSS 4.0 score

8.2High
CVSS 4.0 vector shape for CVE-2026-24400Attack VectorAttack ComplexityAttack RequirementsPrivileges RequiredUser InteractionVS ConfidentialityVS IntegrityVS AvailabilitySS ConfidentialitySS IntegritySS Availability

Vector: CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:L/SC:H/SI:N/SA:N

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Attack Requirements
NonePresent
Privileges Required
NoneLowHigh
User Interaction
NonePassiveActive
VS Confidentiality
HighLowNone
VS Integrity
HighLowNone
VS Availability
HighLowNone
SS Confidentiality
HighLowNone
SS Integrity
HighLowNone
SS Availability
HighLowNone
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
assertjassertj>= 1.4.0, < 3.27.7Listed
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.

CWE-611 · source CWE mapping

Improper Restriction of XML External Entity Reference

Improper Restriction of XML External Entity Reference represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.