Every CVE Search/ Get API key

CVE-2026-61570

MPXJ: XXE Vulnerability in MerlinReader

7.5 HighFix available

MPXJ is an open source library to read and write project plans from a variety of file formats and databases. From 5.5.5 until 16.4.1, MerlinReader creates a DocumentBuilder with default settings while parsing XML from the ZTIMEINTERVALS column of a Merlin project SQLite database, leaving doctype declarations and external entities enabled. A crafted database can cause the parser to read an arbitrary local file, although MPXJ's subsequent handling of the parsed XML makes disclosure of the file contents unlikely. This issue is fixed in version 16.4.1.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
None
Availability
None

Exploit likelihood

0.47%Unchanged since Sep 23, 2026
90%50%10%1%

What each source reports

CVE List Score used 7.5

MPXJ: XXE Vulnerability in MerlinReader

MPXJ is an open source library to read and write project plans from a variety of file formats and databases. From 5.5.5 until 16.4.1, MerlinReader creates a DocumentBuilder with default settings while parsing XML from the ZTIMEINTERVALS column of a Merlin project SQLite database, leaving doctype declarations and external entities enabled. A crafted database can cause the parser to read an arbitrary local file, although MPXJ's subsequent handling of the parsed XML makes disclosure of the file contents unlikely. This issue is fixed in version 16.4.1.

Record
CVE-2026-61570
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Weakness
CWE-611
Updated
2026-11-02
EUVDEUVD-2026-84820 7.5

MPXJ is an open source library to read and write project plans from a variety of file formats and databases. From 5.5.5 until 16.4.1, MerlinReader creates a DocumentBuilder with default settings while parsing XML from the ZTIMEINTERVALS column of a Merlin project SQLite database, leaving doctype declarations and external entities enabled. A crafted database can cause the parser to read an arbitrary local file, although MPXJ's subsequent handling of the parsed XML makes disclosure of the file contents unlikely. This issue is fixed in version 16.4.1.

Record
EUVD-2026-84820
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-5vvx-3h34-f3gj 7.5

MPXJ: XXE Vulnerability in MerlinReader

Impact

MPXJ used the default configuration when creating a DocumentBuilder instance, which leaves doctype declarations enabled, when parsing the XML content of the ZTIMEINTERVALS column from a Merlin project SQLite file. This would allow a carefully crafted XML payload to read an arbitrary file. However, although an arbitrary file can be read, the way the resulting parsed XML is processed by MPXJ means that the data it contains is unlikely to be available for exfiltration.

Patches

The patch is included in MPXJ 16.4.1

Workarounds

Potential workarounds include:

  • Avoid reading Merlin project files with MPXJ
  • Only accept Merlin project files from trusted sources
  • Preprocess Merlin SQLite databases to strip doctype declarations from the ZTIMEINTERVALS column
Record
GHSA-5vvx-3h34-f3gj
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Weakness
CWE-611
Updated
2026-11-02
NVD 7.5

MPXJ is an open source library to read and write project plans from a variety of file formats and databases. From 5.5.5 until 16.4.1, MerlinReader creates a DocumentBuilder with default settings while parsing XML from the ZTIMEINTERVALS column of a Merlin project SQLite database, leaving doctype declarations and external entities enabled. A crafted database can cause the parser to read an arbitrary local file, although MPXJ's subsequent handling of the parsed XML makes disclosure of the file contents unlikely. This issue is fixed in version 16.4.1.

Record
CVE-2026-61570
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Weakness
CWE-611
Updated
2026-11-02
OSV 7.5

MPXJ: XXE Vulnerability in MerlinReader

MPXJ is an open source library to read and write project plans from a variety of file formats and databases. From 5.5.5 until 16.4.1, MerlinReader creates a DocumentBuilder with default settings while parsing XML from the ZTIMEINTERVALS column of a Merlin project SQLite database, leaving doctype declarations and external entities enabled. A crafted database can cause the parser to read an arbitrary local file, although MPXJ's subsequent handling of the parsed XML makes disclosure of the file contents unlikely. This issue is fixed in version 16.4.1.

Record
CVE-2026-61570
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Weakness
CWE-611
Updated
2026-11-07
OSVGHSA-5vvx-3h34-f3gj 7.5

MPXJ: XXE Vulnerability in MerlinReader

Impact

MPXJ used the default configuration when creating a DocumentBuilder instance, which leaves doctype declarations enabled, when parsing the XML content of the ZTIMEINTERVALS column from a Merlin project SQLite file. This would allow a carefully crafted XML payload to read an arbitrary file. However, although an arbitrary file can be read, the way the resulting parsed XML is processed by MPXJ means that the data it contains is unlikely to be available for exfiltration.

Patches

The patch is included in MPXJ 16.4.1

Workarounds

Potential workarounds include:

  • Avoid reading Merlin project files with MPXJ
  • Only accept Merlin project files from trusted sources
  • Preprocess Merlin SQLite databases to strip doctype declarations from the ZTIMEINTERVALS column
Record
GHSA-5vvx-3h34-f3gj
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Weakness
CWE-611
Updated
2026-11-02
OSVPYSEC-2026-4107 7.5

MPXJ: XXE Vulnerability in MerlinReader

Impact

MPXJ used the default configuration when creating a DocumentBuilder instance, which leaves doctype declarations enabled, when parsing the XML content of the ZTIMEINTERVALS column from a Merlin project SQLite file. This would allow a carefully crafted XML payload to read an arbitrary file. However, although an arbitrary file can be read, the way the resulting parsed XML is processed by MPXJ means that the data it contains is unlikely to be available for exfiltration.

Patches

The patch is included in MPXJ 16.4.1

Workarounds

Potential workarounds include:

  • Avoid reading Merlin project files with MPXJ
  • Only accept Merlin project files from trusted sources
  • Preprocess Merlin SQLite databases to strip doctype declarations from the ZTIMEINTERVALS column
Record
PYSEC-2026-4107
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
net.sf.mpxj:mpxj
Maven
5.5.5 up to 16.4.1
16.4.1
mpxj
RubyGems
5.5.5 up to 16.4.1
16.4.1
MPXJ.Net
NuGet
5.5.5 up to 16.4.1
16.4.1
net.sf.mpxj
NuGet
5.5.5 up to 16.4.1
16.4.1
net.sf.mpxj-for-csharp
NuGet
5.5.5 up to 16.4.1
16.4.1
net.sf.mpxj-for-vb
NuGet
5.5.5 up to 16.4.1
16.4.1
mpxj
PyPI
5.5.5 up to 16.4.1
16.4.1
net.sf.mpxj:mpxj
Maven
5.5.5 up to 16.4.1, plus listed versions
10.0.010.0.110.0.310.0.410.0.5
Show 45 moreShow less
10.1.010.10.010.11.010.12.010.13.010.14.010.14.110.15.010.16.010.16.110.16.210.2.010.3.010.4.010.5.010.6.010.6.110.6.210.7.010.8.010.9.010.9.111.0.011.1.011.2.011.3.011.3.111.3.211.4.011.5.011.5.111.5.211.5.311.5.412.0.012.0.112.0.212.1.012.1.112.1.212.1.312.10.012.10.112.10.212.10.3
16.4.1
mpxj
RubyGems
5.5.5 up to 16.4.1, plus listed versions
10.0.010.0.110.0.210.0.310.0.4
Show 45 moreShow less
10.0.510.1.010.10.010.11.010.12.010.13.010.14.010.14.110.15.010.16.010.16.110.16.210.2.010.3.010.4.010.5.010.6.010.6.110.6.210.7.010.8.010.9.010.9.111.0.011.1.011.2.011.3.011.3.111.3.211.4.011.5.011.5.111.5.211.5.311.5.412.0.012.0.112.0.212.1.012.1.112.1.212.1.312.10.012.10.112.10.2
16.4.1
MPXJ.Net
NuGet
5.5.5 up to 16.4.1, plus listed versions
13.0.013.0.113.0.213.1.013.10.0
Show 38 moreShow less
13.11.013.12.013.2.013.2.113.2.213.3.013.3.113.4.013.4.113.4.213.5.013.5.113.6.013.8.013.9.014.0.014.1.014.2.014.3.014.3.114.3.214.3.314.3.414.3.514.4.014.5.014.5.114.5.215.0.015.1.015.2.015.3.015.3.116.0.016.1.016.2.016.3.016.4.0
16.4.1
Show 4 moreShow less
Affected packages
PackageAffectedFixed
net.sf.mpxj
NuGet
5.5.5 up to 16.4.1, plus listed versions
10.0.010.0.110.0.210.0.310.0.4
Show 45 moreShow less
10.0.510.1.010.10.010.11.010.12.010.13.010.14.010.14.110.15.010.16.010.16.110.16.210.2.010.3.010.4.010.5.010.6.010.6.110.6.210.7.010.8.010.9.010.9.111.0.011.1.011.2.011.3.011.3.111.3.211.4.011.5.011.5.111.5.211.5.311.5.412.0.012.0.112.0.212.1.012.1.112.1.212.1.312.10.012.10.112.10.2
16.4.1
net.sf.mpxj-for-csharp
NuGet
5.5.5 up to 16.4.1, plus listed versions
10.0.010.0.110.0.210.0.310.0.4
Show 45 moreShow less
10.0.510.1.010.10.010.11.010.12.010.13.010.14.010.14.110.15.010.16.010.16.110.16.210.2.010.3.010.4.010.5.010.6.010.6.110.6.210.7.010.8.010.9.010.9.111.0.011.1.011.2.011.3.011.3.111.3.211.4.011.5.011.5.111.5.211.5.311.5.412.0.012.0.112.0.212.1.012.1.112.1.212.1.312.10.012.10.112.10.2
16.4.1
net.sf.mpxj-for-vb
NuGet
5.5.5 up to 16.4.1, plus listed versions
10.0.010.0.110.0.210.0.310.0.4
Show 45 moreShow less
10.0.510.1.010.10.010.11.010.12.010.13.010.14.010.14.110.15.010.16.010.16.110.16.210.2.010.3.010.4.010.5.010.6.010.6.110.6.210.7.010.8.010.9.010.9.111.0.011.1.011.2.011.3.011.3.111.3.211.4.011.5.011.5.111.5.211.5.311.5.412.0.012.0.112.0.212.1.012.1.112.1.212.1.312.10.012.10.112.10.2
16.4.1
mpxj
PyPI
5.5.5 up to 16.4.1, plus listed versions
10.0.010.0.110.0.210.0.310.0.4
Show 45 moreShow less
10.0.510.1.010.10.010.11.010.12.010.13.010.14.010.14.110.15.010.16.010.16.110.16.210.2.010.3.010.4.010.5.010.6.010.6.110.6.210.7.010.8.010.9.010.9.111.0.011.1.011.2.011.3.011.3.111.3.211.4.011.5.011.5.111.5.211.5.311.5.412.0.012.0.112.0.212.1.112.1.212.1.312.10.012.10.112.10.212.10.3
16.4.1

History

History
RecordedChangedSources
factsOSV
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-61570 is a high vulnerability (CVSS 7.5) in Joniles Mpxj, published September 22, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.47%, the 41st percentile. Fixed in net.sf.mpxj:mpxj 16.4.1.

References

This page doesn't list everything

Left out here: 791 versions. The JSON record has them.

MoveEnter Open