CVE-2026-47754
CriticalCVSS 9.3Exploitation Probability (EPSS)
Low risk27th percentile - higher than 27% of all known CVEs
Summary
Metacat versions 2.x through 2.19.1 and all 1.x versions contain an unauthenticated path traversal in the `archiveEntryName` parameter of the `action=read` endpoint in the legacy 1.x API. An attacker can read any file accessible to the Tomcat process by sending a single GET request, as path validation is missing and the permission check is commented out.
Risk Assessment
The vulnerability allows an unauthenticated attacker to steal credentials, private keys, and client certificates, potentially enabling member node impersonation in the DataONE federation, disclosure of embargoed research data, and broad system reconnaissance. Given the widespread deployment of Metacat, the risk to organizations is significant.
Recommendation
Upgrade Metacat to version 3.0.0 or later, which removes the vulnerable 1.x API. If upgrading is not possible, disable or restrict access to the legacy 1.x API servlets and restart Tomcat or the hosting application server.
Other vulnerabilities in Metacat
See all- CVE-2026-48528Critical
Metacat versions 2.0.0 through 3.4.0 contain an unauthenticated SQL injection vulnerability in the `/cn/v1/object` and `/cn/v2/object` REST API endpoints. The `nodeId` parameter is unsanitized and concatenated into SQL queries, allowing attackers to execute arbitrary SQL, including reading, modifying, and deleting data from the PostgreSQL database. SQL errors are reflected in XML messages, enabling data exfiltration.
- CVE-2026-48114Critical
Metacat is data repository software that contains an unauthenticated SQL injection vulnerability in the /harvesterRegistration endpoint in versions 2.0.0 and above. Exploiting this vulnerability allows full read/write/execute access in the Metacat database context.
- CVE-2026-50022Medium
Metacat is data repository software for researchers. MetacatSolrIndex.query forwards the client-controlled qt parameter through Apache SolrJ from search endpoints such as /d1/mn/v2/query/solr/ to its privileged Solr backend. An unauthenticated client can select the /admin/file handler, and SolrJ reformats the parameter into a request accepted even when handleSelect=false is configured on Solr 7.0 or later. When Solr returns the selected core configuration file, Metacat embeds the raw content in an XML processing error response, disclosing internal files such as solrconfig.xml. This issue is fixed in version 3.4.2.
Original NVD description (English source)
Metacat is data repository software that helps researchers preserve, share, and discover data. Versions 2.x through 2.19.1 and all 1.x versions contain an unauthenticated path traversal in the `archiveEntryName` parameter of the `action=read` endpoint that is part of the original 1.x Metacat API. `ArchiveHandler.readArchiveEntry()` concatenates the user-supplied parameter into a filesystem path without validation, and the surrounding `hasReadPermission()` check is commented out. An unauthenticated remote attacker can read any file accessible to the Tomcat process by sending a single GET request. Proof-of-concept exploits have been demonstrated and verified against this vulnerability, and it should be considered easily exploitable for any Metacat deployment < 3.0.0 by any user with access to the 1.x API. Through this vulnerability, production 2.x deployments are exposed to credential theft, client certificate and private key exfiltration enabling member node impersonation within the federation, embargoed research data disclosure, and broad system reconnaissance. Given Metacat's deployment footprint across the DataONE network of repositories and federally funded research programs, the population of exposed 2.x instances is non-trivial. The vulnerability was eliminated in Metacat version 3.0.0 and after by eliminating the entire Metacat 1.x API that exposed this vulnerability. The vulnerability was remediated in April 2024 with the release of Metacat 3.0.0, which removed the legacy Metacat API including ArchiveHandler.java. The commit message and issue reference architectural cleanup, not a security fix, and no advisory or CVE was issued. The 2.x branch was not and will not be backported, as is standard practice in Metacat, which only supports the most current release. 2.19.1 remains vulnerable with identical code and is beyond its supported lifetime. As a workaround, disable or restrict 1.x API servlets. Because the vulnerable 1.x API is no longer used or necessary in most Metacat deployments, restricting access to the old API endpoints can reduce or eliminate exposure for 2.19.x deployments. After removing those features, restart Tomcat or whichever software is hosting the servlets.

