Skip to content

CVE-2026-47754 — Metacat is data repository software that helps researchers preserve, share, and discover…

Key facts

CVE-2026-47754 is a Critical (9.3) vulnerability: Metacat is data repository software that helps researchers preserve, share, and discover…. This entry ships a detection-only PoC and a Docker test lab.

CVE CVE-2026-47754
Severity Critical (9.3)
Detection / prevention —
PoC poc.py
Source 2026/CVE-2026-47754/

Details

English | 한국어

Description

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.

Vulnerability Details

Property Value
CVE ID CVE-2026-47754
Type PATH_TRAVERSAL
CVSS Score 9.3

Proof of Concept

Download

# Download PoC script
curl -O https://raw.githubusercontent.com/fankh/vulnerability-poc/main/2026/CVE-2026-47754/poc.py

Usage

# Run PoC against target
python3 poc.py --target <TARGET_URL>

# With authentication
python3 poc.py --target <TARGET_URL> --username <USER> --password <PASS>

⚠️ Warning: This PoC is for authorized security testing only. It uses detection-only techniques and does not exploit or damage target systems.

Test Lab

This repository includes a Docker-based test environment with both vulnerable and patched applications.

Quick Start

# Clone and navigate to CVE directory
cd CVE-2026-47754

# Start both applications
docker-compose up -d

# Run tests
./run-tests.sh    # Linux/Mac
./run-tests.ps1   # Windows PowerShell

Application Endpoints

Application URL Status
Vulnerable App http://localhost:8080 Shows vulnerability
Patched App http://localhost:8081 Demonstrates fix

Directory Structure

├── README.md           # English documentation
├── README_KO.md        # Korean documentation
├── poc.py              # PoC detection script
├── docker-compose.yml  # Container orchestration
├── run-tests.sh        # Linux/Mac test runner
├── run-tests.ps1       # Windows test runner
├── vulnerable-app/     # Vulnerable version
│   ├── app.py
│   ├── Dockerfile
│   └── requirements.txt
└── patched-app/        # Fixed version
    ├── app.py
    ├── Dockerfile
    └── requirements.txt

References

  • https://github.com/NCEAS/metacat/commit/07e034b2bbf7029e28af32f472f4d70ea6b5ab1b
  • https://github.com/NCEAS/metacat/issues/1365
  • https://github.com/NCEAS/metacat/pull/1713
  • https://github.com/NCEAS/metacat/security/advisories/GHSA-m852-f287-7cgw

Generated by PoC Generator on 2026-08-11T01:59:54.198058818

Frequently asked questions

What is CVE-2026-47754?

CVE-2026-47754 is a Critical (9.3) vulnerability: Metacat is data repository software that helps researchers preserve, share, and discover…. This entry ships a detection-only PoC and a Docker test lab.

How do I detect CVE-2026-47754?

Run the detection-only PoC included with this entry against your Docker test lab to confirm whether a target is affected; pair it with your own IDS logging.

How do I block or mitigate CVE-2026-47754?

Upgrade to a fixed version per the vendor advisory; the NVD record lists the affected versions. Use the included PoC to verify your remediation.


For authorized security testing and research only. See the full source and NVD record.