Skip to content

Prevent XXE in process diagram layout parser - #4254

Open
somiljain2006 wants to merge 4 commits into
flowable:mainfrom
somiljain2006:XXE-SSRF-fix
Open

somiljain2006 wants to merge 4 commits into
flowable:mainfrom
somiljain2006:XXE-SSRF-fix

Conversation

@somiljain2006

Copy link
Copy Markdown

Fixes #4216

Fix XXE vulnerability in ProcessDiagramLayoutFactory by securely configuring the XML parser to reject DOCTYPE declarations, disable external entity and DTD resolution, disable XInclude and entity expansion, and add regression coverage for malicious BPMN XML. Apply the same hardening to the Flowable 5 compatibility parser.

Checklist:

  • Unit tests: YES
  • Documentation: NA

@360608

360608 commented Oct 29, 2026 •

Copy link
Copy Markdown

Thanks for working on this. I verified the parser hardening independently: with the patch, an XXE payload is rejected and valid BPMN with DI still parses.

One concern about the test: it puts the entity in an attribute value (id="&xxe;"). The JDK rejects that on the unpatched parser too, so the test passes without the fix. To make it a real regression test, place the entity in element text content, e.g. <documentation>&xxe;</documentation> with <!DOCTYPE definitions [<!ENTITY xxe SYSTEM "file:///...">]>. Unpatched, the file contents are resolved into the model; patched, parsing fails on the DOCTYPE.

@somiljain2006 I opened a PR against your branch with a stronger test that does this (plus DOCTYPE-rejected and valid-BPMN-parses cases): somiljain2006#1

Also, could a maintainer merge this and cut a patch release? Issue #4216 is flagged HIGH by dependency scanners (CVE-2026-91197), and 8.0.0 is the latest release, so downstream users have no fixed version to move to.

Strengthen XXE regression test (entity in element text)
@360608

360608 commented Oct 29, 2026

Copy link
Copy Markdown

@dbmalkovsky @filiphr @tijsrademakers @jbarrez - could you please review this fix and, if it looks good, merge it and include it in a patch release (8.0.1)?

Several enterprise users are waiting on a patched release to clear security reviews. Thank you!

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

XML External Entity (XXE) injection in ProcessDiagramLayoutFactory

4 participants