GHSA-9vx8-f5c4-862x
XML External Entity (XXE) vulnerability in apoc.import.graphml
Impact
A XML External Entity (XXE) vulnerability found in the apoc.import.graphml procedure of APOC core plugin in Neo4j graph database. XML External Entity (XXE) injection occurs when the XML parser allows external entities to be resolved. The XML parser used by the apoc.import.graphml procedure was not configured in a secure way and therefore allowed this.
External entities can be used to read local files, send HTTP requests, and perform denial-of-service attacks on the application.
Abusing the XXE vulnerability enabled assessors to read local files remotely. Although with the level of privileges assessors had this was limited to one-line files. With the ability to write to the database, any file could have been read. Additionally, assessors noted, with local testing, the server could be crashed by passing in improperly formatted XML.
Patches
The users should aim to use the latest released version compatible with their Neo4j version. The minimum versions containing patch for this vulnerability is 4.4.0.14.
Workarounds
If you cannot upgrade the library, you can control the allowlist of the procedures that can be used in your system.
For more information
If you have any questions or comments about this advisory:
- Open an issue in neo4j-apoc-procedures
- Email us at security@neo4j.com
Credits
We want to publicly recognise the contribution of Christopher Schneider – State Farm.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- None
- Availability
- High
What each source reports
GitHub Advisories Score used 5.9
XML External Entity (XXE) vulnerability in apoc.import.graphml
Impact
A XML External Entity (XXE) vulnerability found in the apoc.import.graphml procedure of APOC core plugin in Neo4j graph database. XML External Entity (XXE) injection occurs when the XML parser allows external entities to be resolved. The XML parser used by the apoc.import.graphml procedure was not configured in a secure way and therefore allowed this.
External entities can be used to read local files, send HTTP requests, and perform denial-of-service attacks on the application.
Abusing the XXE vulnerability enabled assessors to read local files remotely. Although with the level of privileges assessors had this was limited to one-line files. With the ability to write to the database, any file could have been read. Additionally, assessors noted, with local testing, the server could be crashed by passing in improperly formatted XML.
Patches
The users should aim to use the latest released version compatible with their Neo4j version. The minimum versions containing patch for this vulnerability is 4.4.0.14.
Workarounds
If you cannot upgrade the library, you can control the allowlist of the procedures that can be used in your system.
For more information
If you have any questions or comments about this advisory:
- Open an issue in neo4j-apoc-procedures
- Email us at security@neo4j.com
Credits
We want to publicly recognise the contribution of Christopher Schneider – State Farm.
- Record
GHSA-9vx8-f5c4-862x- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:H - Weakness
- CWE-611
- Updated
- 2026-11-02
OSV 5.9
XML External Entity (XXE) vulnerability in apoc.import.graphml
Impact
A XML External Entity (XXE) vulnerability found in the apoc.import.graphml procedure of APOC core plugin in Neo4j graph database. XML External Entity (XXE) injection occurs when the XML parser allows external entities to be resolved. The XML parser used by the apoc.import.graphml procedure was not configured in a secure way and therefore allowed this.
External entities can be used to read local files, send HTTP requests, and perform denial-of-service attacks on the application.
Abusing the XXE vulnerability enabled assessors to read local files remotely. Although with the level of privileges assessors had this was limited to one-line files. With the ability to write to the database, any file could have been read. Additionally, assessors noted, with local testing, the server could be crashed by passing in improperly formatted XML.
Patches
The users should aim to use the latest released version compatible with their Neo4j version. The minimum versions containing patch for this vulnerability is 4.4.0.14.
Workarounds
If you cannot upgrade the library, you can control the allowlist of the procedures that can be used in your system.
For more information
If you have any questions or comments about this advisory:
- Open an issue in neo4j-apoc-procedures
- Email us at security@neo4j.com
Credits
We want to publicly recognise the contribution of Christopher Schneider – State Farm.
- Record
GHSA-9vx8-f5c4-862x- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:H - Weakness
- CWE-611
- Updated
- 2026-11-02
Affected packages
| Package | Affected | Fixed |
|---|---|---|
org.neo4j.procedure:apocMaven | before 4.4.0.14 | 4.4.0.14 |
org.neo4j.procedure:apocMaven | 5.0.0 up to 5.5.0 | 5.5.0 |
org.neo4j.procedure:apocMaven | before 4.4.0.14, plus listed versions 1.0.01.0.0-RC11.1.03.0.4.13.0.4.2 Show 45 moreShow less3.0.8.43.0.8.53.1.0.23.1.0.33.1.0.43.1.0.53.1.2.53.1.3.73.1.3.83.1.3.93.2.0.13.2.0.43.2.3.53.2.3.63.3.0.13.3.0.23.3.0.33.3.0.43.4.0.13.4.0.23.4.0.33.4.0.43.4.0.53.4.0.73.5.0.13.5.0.103.5.0.113.5.0.123.5.0.133.5.0.143.5.0.153.5.0.173.5.0.183.5.0.193.5.0.23.5.0.203.5.0.213.5.0.43.5.0.53.5.0.63.5.0.74.0.0-rc014.0.0.04.0.0.14.0.0.10 | 4.4.0.14 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | GitHub Advisories, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
GHSA-9vx8-f5c4-862x is a medium vulnerability (CVSS 5.9) in org.neo4j.procedure:apoc, published February 24, 2023. No source lists public exploit code. Fixed in org.neo4j.procedure:apoc 4.4.0.14.
References
github.com/neo4j-contrib/neo4j-apoc-procedures/security/advisories/GHSA-9vx8-f5c4-862x
github.com/neo4j/apoc/security/advisories/GHSA-6wxg-wh7f-rqpr
nvd.nist.gov/vuln/detail/CVE-2023-23926
github.com/neo4j-contrib/neo4j-apoc-procedures/commit/c3e2a29020497acf9417879f38e8af4e8c6d5783
github.com/neo4j-contrib/neo4j-apoc-procedures/releases/tag/4.4.0.14
github.com/advisories/GHSA-9vx8-f5c4-862x
github.com/neo4j-contrib/neo4j-apoc-procedures
Left out here: 67 versions. The JSON record has them.