Spring Rest DocsFramework / library · Broadcom

CVE-2026-40991

MEDIUM · 5.9 CVSS v3.1 Published 2026-06-10
Fix available
A fix is available. Upgrade to 2.0.9 / 3.0.5.1 or later.
See remediation →
66/100
Remediation priority · Elevated
Remotely reachable No privileges

Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.

NVD · unedited
When using spring-restdocs-webtestclient or spring-restdocs-restassured to document a remote API accessed over HTTP, an attacker who compromises the API or tricks the user into documenting a malicious API can perform an XXE injection attack when the documentation-generating tests are next executed. Affected versions: Spring REST Docs 4.0.0; 3.0.0 through 3.0.5; 2.0.0.RELEASE through 2.0.8.RELEASE.

Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.

dbcve analysis · high confidence

When using spring-restdocs-webtestclient or spring-restdocs-restassured to document remote APIs over HTTP, the documentation-generating tests parse XML responses from those APIs. A compromised or malicious remote API can inject XXE payloads into its XML responses, which get processed when the documentation tests execute, leading to XXE injection.

MitigationUpgrade to a patched version of Spring REST Docs. Until then, avoid documenting untrusted remote APIs and validate/sanitize all API responses before documentation generation.

Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.

Affected products & versions What the vendor confirmedThe version ranges the vendor confirmed as vulnerable. If your version sits inside a range here, treat yourself as exposed until you have upgraded.

NVD · CPE data
Spring Rest DocsFramework / library
Affected:>= 2.0.0, < 2.0.9>= 3.0.0, < 3.0.5.1= 4.0.0

CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.

From the vector
Attack vector
Network
Complexity
High
Privileges
None
User interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
Low

CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:L

Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.

dbcve checks

Work through these to decide whether this CVE applies to you.

  1. Identify Spring REST Docs version
    Check your project's dependency management file (pom.xml for Maven or build.gradle for Gradle) for spring-restdocs-webtestclient or spring-restdocs-restassured dependency and note the version
    Affected if The version is 2.0.0 through 2.0.8, 3.0.0 through 3.0.5, or exactly 4.0.0
  2. Verify webtestclient or restassured module usage
    Review your test source files for imports and configuration of org.springframework.restdocs.webtestclient or org.springframework.restdocs.restassured packages
    Affected if Either module is present in your project dependencies or test code
  3. Confirm XML response parsing in documentation tests
    Examine your REST Docs test configuration and snippet descriptors to see if documentation is generated for XML-formatted HTTP responses
    Affected if Tests generate documentation snippets for XML responses from remote APIs
  4. Identify remote APIs being documented
    Review your test configuration for base URIs or endpoint URLs being used with webtestclient or restassured documentation generation
    Affected if Tests document responses from APIs that are not under your direct control or are shared/third-party services

You are affected if your environment uses Spring REST Docs version 2.0.0-2.0.8, 3.0.0-3.0.5, or 4.0.0 with the webtestclient or restassured module to document XML responses from external or untrusted remote HTTP APIs

Generated from the published advisory. Verify against your own configuration.

Check your environment

Paste your version and any relevant configuration and it will be compared against the affected criteria above. Do not include secrets or credentials.

AI-assisted, checked against the advisory. Informational, not a guarantee.

Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.

dbcve · scoped
Upgrade available Upgrade to 2.0.9 / 3.0.5.1 or later
Fixed in 2.0.93.0.5.1
Interim mitigation

Upgrade to a patched version of Spring REST Docs. Until then, avoid documenting untrusted remote APIs and validate/sanitize all API responses before documentation generation.

Recommended fix High confidence

2.0.9 for 2.x users; 3.0.5.1 for 3.x users; 4.0.1 or later for 4.x users

  1. 1. Identify your current Spring REST Docs version by checking your build configuration (pom.xml, build.gradle, or equivalent)
  2. 2. If using version 2.0.x (2.0.0 through 2.0.8): upgrade spring-restdocs-webtestclient and spring-restdocs-restassured dependencies to version 2.0.9
  3. 3. If using version 3.0.x (3.0.0 through 3.0.5): upgrade spring-restdocs-webtestclient and spring-restdocs-restassured dependencies to version 3.0.5.1
  4. 4. If using version 4.0.0: upgrade to version 4.0.1 or later (4.x latest stable release)
  5. 5. Rebuild and run your test suite to verify the upgrade does not break existing functionality
  6. 6. Ensure your documentation-generating tests still produce the expected API documentation output
Caveat Minimal - these are patch releases addressing a security vulnerability; no API changes expected

Generated from the published advisory — verify against the referenced sources before acting.

Fix this in Spring Rest Docs Scoped from the published advisory
  • Consultation2.0 h
  • Implementation1.0 h
  • Testing3.0 h
  • Review / QA2.0 h
8.0 hours of engineering $1,390
Get the upgrade done

An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $2,224.

Scan for this in your stack

Free · runs locally
dbcve dependency scanner

Check whether your project pulls in CVE-2026-40991 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.

References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.

Primary sources

Practitioner notes

Contributed

Peer-ranked notes from engineers who’ve handled CVE-2026-40991 in production — separate from our analysis above.

No notes yet

Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.

What this is

A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.

What belongs here
  • Verified mitigations, workarounds, and config changes
  • Version or environment caveats, and links to real fixes
  • No weaponised exploit code, or anything meant to cause harm
  • No spam, self-promotion, credentials, or personal data