A CVSS 9.3 unauthenticated path traversal in Metacat's ArchiveHandler.java was remediated in version 3.0.0 through a commit logged as 'architectural cleanup' — the legacy API was simply removed. No CVE was filed. No backport was provided to the 2.x branch. The developers who closed this critical attack vector never knew they had closed a critical attack vector, and organizations running 2.x instances have no patch path forward.

This is the real vulnerability: not the path traversal itself, but the pattern of accumulated security debt in deprecated research infrastructure code that gets cleaned up without security context. In Metacat 2.19.x, the vulnerability remains active. The exposure window is indefinite — there is no fix coming from the project, and the only mitigation is manually restricting access to the legacy API endpoints that trigger ArchiveHandler.

For defenders running Metacat 2.x deployments in research networks: verify whether your instance exposes any endpoint that routes through ArchiveHandler or accepts archive-style requests. If the legacy API is accessible to unauthenticated network actors, you have a critical path traversal vulnerability with no vendor patch. Implement network-level restrictions or API gateway filtering to block requests to any /archive, /handle-legacy, or legacy-style data ingest paths. Assume this class of vulnerability exists in other DataONE-adjacent systems — the pattern of commented-out permission checks, team transitions, and 'cleanup' commits that remove security boundaries without recognizing them is recurrent in federally funded research software.

The broader lesson is that deprecated code in research infrastructure is not inert — it often contains the only authentication layer protecting a high-severity path. Deprecating that code doesn't eliminate risk; it transforms it from 'assumed dead' to 'actively exploitable' the moment someone cleans it up without security review.