Severity by source
AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:N/A:N
Collection admin credentials required (PR:H) and attacker must control or compromise an OAI endpoint (AC:H); impact is read-only local file disclosure (C:H, I:N, A:N).
Primary rating from Vendor (https://github.com/DSpace/DSpace).
CVSS VectorVendor: https://github.com/DSpace/DSpace
Lifecycle Timeline
1Blast Radius
ecosystem impact- 10 maven packages depend on org.dspace:dspace-api (7 direct, 3 indirect)
Ecosystem-wide dependent count for version 8.0-rc1.
DescriptionCVE.org
Overview
When ingesting an aggregated ORE resource by URI (using the OAI-ORE Harvester)), the ORE Ingestion Crosswalk does not validate the URI scheme. This may allow for local file inclusion via malicious paths like file:///etc/passwd. _This vulnerability impacts DSpace versions <= 7.6.6, 8.0 <= 8.3, 9.0 <= 9.2._ The attacker MUST already have DSpace collection administrator privileges in order to perform the attack.
Expected behaviour : Only external web resources should be ingested as ORE resources, preferably from the trusted endpoint.
Impact
A remote OAI endpoint configured as a harvest source for a DSpace collection can supply malicious ORE XML that results in a local file from the DSpace server being ingested as a bitstream.
Only Collection, Community and Site Administrators can configure a collection for OAI harvest, however an attacker may use stolen credentials to escalate into local file/data disclosure, or a compromised OAI endpoint could also supply malicious XML.
Patches
The fix is included in DSpace 7.6.7, 8.4, 9.3 and 10.0. Please upgrade to one of these versions or disable the ORE Crosswalk (see below).
If users cannot upgrade immediately, it is possible to manually patch their DSpace backend. (No changes are necessary to the frontend.) A pull request exists which can be used to patch systems running DSpace 7.6.x, 8.x or 9.x.
- Pull request for 9.x: https://github.com/DSpace/DSpace/pull/12541 (Downloadable patch file)
- Pull request for 8.x: https://github.com/DSpace/DSpace/pull/12543 (Downloadable patch file)
- Pull request for 7.x: https://github.com/DSpace/DSpace/pull/12542 (Downloadable patch file)
Apply the patch to a user's DSpace
If at all possible, we recommend disabling the ORE Crosswalk (see below) or upgrading a user's DSpace site based on the upgrade instructions. However, if they are unable to do so, they can manually apply the above patches to their DSpace backend as follows:
- Download the appropriate patch file to the machine where DSpace backend is running
- From the
[dspace-src]folder, apply the patch, e.g.git apply [name-of-file].patch - Now, update the DSpace site (based loosely on the Upgrade instructions). This generally involves three steps:
- Rebuild DSpace, e.g.
mvn -U clean package(This will recompile all DSpace backend code) - Redeploy DSpace, e.g.
ant update(This will copy all newly built code to their installation directory). Depending on their setup they also may need to copy the updated "server" webapp over to their Tomcat webapps folder. - Restart Tomcat (or runnable JAR)
Workarounds
- Disable the ORE ingestion crosswalk in
dspace.cfgby commenting out or removing it from the list ofplugin.named.org.dspace.content.crosswalk.IngestionCrosswalkplugins:
# Remove or comment out this line
org.dspace.content.crosswalk.OREIngestionCrosswalk = ore, \- Once they have patched their site or upgraded, they may safely enable the OREIngestionCrosswalk again.
Credits
Discovered & reported by Pablo Picurelli Ortiz (@superpegaso2703), cybersecurity student at Universidad Rey Juan Carlos. Code fix developed by Kim Shepherd (@kshepherd) of The Library Code
AnalysisAI
Local file inclusion in DSpace's OAI-ORE Ingestion Crosswalk allows a collection administrator to expose arbitrary server-side files as ingested bitstreams by supplying or triggering a malicious ORE XML document referencing file:/// URIs. Versions 7.x through 7.6.6, 8.0-8.3, and 9.0-9.2 are confirmed affected; fixed releases (7.6.7, 8.4, 9.3, 10.0) are available per the GitHub security advisory. No public exploit and no CISA KEV listing exist at time of analysis; the CVSS score of 4.4 reflects meaningful constraints on exploitation (high privileges, high complexity).
Technical ContextAI
DSpace is an open-source Java-based institutional repository platform (pkg:maven/org.dspace:dspace-api) deployed primarily by academic libraries and research institutions, running on Apache Tomcat. The OAI-PMH/OAI-ORE Harvester feature allows DSpace collections to ingest remote digital objects described in ORE (Object Reuse and Exchange) XML format. The ORE Ingestion Crosswalk parses that XML and fetches resource URIs to create bitstreams. CWE-20 (Improper Input Validation) is the root cause: the crosswalk does not whitelist or validate the URI scheme before resolution, so a file:// URI bypasses the expectation that only remote web resources are fetched. This allows the Tomcat process's filesystem permissions to be leveraged to read local files such as /etc/passwd or DSpace configuration files and store them as collection bitstreams.
RemediationAI
Vendor-released patches are available: upgrade to DSpace 7.6.7, 8.4, 9.3, or 10.0 following standard DSpace upgrade procedures (rebuild with mvn -U clean package, redeploy with ant update, restart Tomcat). For installations that cannot upgrade immediately, downloadable patch files are available for manual application: 9.x at https://github.com/DSpace/DSpace/pull/12541, 8.x at https://github.com/DSpace/DSpace/pull/12543, and 7.x at https://github.com/DSpace/DSpace/pull/12542; apply each with git apply [patch].patch from the dspace-src directory, then rebuild and redeploy. As a non-upgrade workaround, disable the ORE Ingestion Crosswalk entirely by commenting out or removing the org.dspace.content.crosswalk.OREIngestionCrosswalk entry from the plugin.named.org.dspace.content.crosswalk.IngestionCrosswalk list in dspace.cfg - note this disables all OAI-ORE harvesting workflows and will break any collections relying on that ingest path until the crosswalk is re-enabled after patching.
When running Apache Tomcat versions 9.0.0.M1 to 9.0.0, 8.5.0 to 8.5.22, 8.0.0.RC1 to 8.0.46 and 7.0.0 to 7.0.81 with HTT
When using the Apache JServ Protocol (AJP), care must be taken when trusting incoming connections to Apache Tomcat. Rate
In SysAid On-Premise before 23.3.36, a path traversal vulnerability leads to code execution after an attacker writes a f
Remote code execution is possible with Apache Tomcat before 6.0.48, 7.x before 7.0.73, 8.x before 8.0.39, 8.5.x before 8
When running Apache Tomcat 7.0.0 to 7.0.79 on Windows with HTTP PUTs enabled (e.g. Rated high severity (CVSS 8.1), this
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
MultipartStream.java in Apache Commons FileUpload before 1.3.1, as used in Apache Tomcat, JBoss Web, and other products,
The payload length in a WebSocket frame was not correctly validated in Apache Tomcat 10.0.0-M1 to 10.0.0-M6, 9.0.0.M1 to
When using a VirtualDirContext with Apache Tomcat 7.0.0 to 7.0.80 it was possible to bypass security constraints and/or
When using Apache Tomcat versions 10.0.0-M1 to 10.0.0-M4, 9.0.0.M1 to 9.0.34, 8.5.0 to 8.5.54 and 7.0.0 to 7.0.103 if a)
java/org/apache/coyote/http11/filters/ChunkedInputFilter.java in Apache Tomcat 6.x before 6.0.42, 7.x before 7.0.55, and
Missing encryption of cluster replication traffic in Apache Tomcat 11.0.20, 10.1.53, and 9.0.116 exposes sensitive sessi
Same weakness CWE-20 – Improper Input Validation
View allSame technique Privilege Escalation
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-70233
GHSA-c827-pw3m-67w7