CVE-2026-47664 Overview
CVE-2026-47664 affects Pathling Server, a toolset for working with Fast Healthcare Interoperability Resources (FHIR) and clinical terminology in health data analytics. The $import-pnp operation accepts a caller-supplied exportUrl and uses it as a remote FHIR Bulk Export endpoint without restricting the destination to trusted sources. When Provider and Pharmacy Network (PNP) credentials are configured, the server issues authenticated bulk-export requests to attacker-chosen hosts. Downloaded files are then reclassified as trusted local file:// imports, bypassing the allowableSources allowlist that protects the standard $import operation. The issue is fixed in Pathling Server 2.0.0.
Critical Impact
An authenticated caller can coerce Pathling Server into using configured PNP credentials against arbitrary hosts and then ingest attacker-controlled data as trusted local files.
Affected Products
- Pathling Server versions prior to 2.0.0
- Deployments with pathling.operations.importPnpEnabled=true
- Deployments with PNP credentials configured
Discovery Timeline
- 2026-08-07 - CVE-2026-47664 published to the National Vulnerability Database (NVD)
- 2026-08-10 - Last updated in NVD database
Technical Details for CVE-2026-47664
Vulnerability Analysis
The vulnerability is an improper input validation issue [CWE-20] combining Server-Side Request Forgery (SSRF) with an allowlist bypass. Pathling Server exposes an $import-pnp FHIR operation intended to import data from a trusted PNP FHIR Bulk Export endpoint. The operation trusts the caller-supplied exportUrl parameter and does not validate it against a fixed set of PNP hosts.
When PNP credentials are configured on the server, Pathling constructs a credentialed bulk-export client aimed at the caller-chosen host. This lets an authenticated caller relay the server's PNP credentials to arbitrary endpoints and retrieve responses under the server's identity. The retrieved manifest-selected files are then written to local staging.
The second half of the flaw is the staging behavior. After download, Pathling reclassifies the staged files as local file:// sources and imports them. The ordinary $import operation enforces the allowableSources allowlist, but the $import-pnp code path skips that check because the imports appear to originate from the local filesystem. An attacker can therefore ingest arbitrary FHIR content into the analytics dataset.
Root Cause
Pathling treats the exportUrl parameter as trusted input and does not constrain it to configured PNP hosts. Files fetched over the network are then relabeled as trusted local imports, causing the $import allowlist enforcement to be bypassed for content that originated outside the allowlist.
Attack Vector
Exploitation requires network access to the Pathling Server and low-privilege authenticated access sufficient to invoke $import-pnp. The attacker submits a crafted exportUrl pointing to a host they control or to an internal service reachable from the server. Pathling connects with PNP credentials, follows the returned bulk-export manifest, downloads the referenced files, and ingests them as trusted local data. The result is unauthorized data ingestion with high confidentiality and integrity impact on the FHIR dataset, plus credential exposure to attacker-controlled endpoints.
No verified public exploit code is available. See the GitHub Security Advisory GHSA-69wc-hrxh-5528 for the vendor's technical description.
Detection Methods for CVE-2026-47664
Indicators of Compromise
- Outbound HTTP or HTTPS connections from the Pathling Server host to domains that are not part of the configured PNP infrastructure.
- FHIR audit or application log entries showing $import-pnp invocations with exportUrl values pointing to unexpected hosts.
- New or unexpected files appearing in the Pathling bulk-export staging directory that were not sourced from a sanctioned PNP endpoint.
- Presentation of PNP credentials, such as bearer tokens or client assertions, in TLS sessions to non-PNP destinations.
Detection Strategies
- Parse Pathling access and operation logs for $import-pnp calls and correlate the exportUrl parameter against an approved PNP host list.
- Baseline egress from Pathling Server hosts and alert on any destination outside the FHIR PNP allowlist.
- Monitor imported dataset lineage for records that entered via $import-pnp and flag those whose source manifest URL is not on the approved list.
Monitoring Recommendations
- Forward Pathling application logs, HTTP access logs, and host egress netflow to a centralized analytics pipeline for correlation.
- Alert on any invocation of $import-pnp while pathling.operations.importPnpEnabled is expected to be disabled.
- Track file creation events in the bulk-export staging directory and correlate them with the initiating $import-pnp request identifier.
How to Mitigate CVE-2026-47664
Immediate Actions Required
- Upgrade Pathling Server to version 2.0.0 or later, which constrains $import-pnp to trusted PNP sources.
- If upgrade is not immediately possible, disable the operation by setting pathling.operations.importPnpEnabled=false and restart the server.
- Remove or rotate configured PNP credentials if any evidence of misuse is found in logs.
- Audit the current dataset for records ingested via $import-pnp from unrecognized source URLs.
Patch Information
The issue is fixed in Pathling Server 2.0.0. The fix constrains the $import-pnp operation so that the exportUrl cannot be redirected to arbitrary hosts and staged files are no longer implicitly reclassified as trusted local imports. Refer to the Pathling GitHub Security Advisory for release details.
Workarounds
- Disable the operation via configuration: pathling.operations.importPnpEnabled=false.
- Do not configure PNP credentials on servers that cannot be upgraded, which prevents credentialed bulk-export requests from being issued.
- Restrict outbound network egress from the Pathling Server to only the approved PNP FHIR endpoints at the network layer.
# Configuration example: disable $import-pnp until upgrade to 2.0.0
pathling.operations.importPnpEnabled=false
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

