Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network endpoint, no auth in default config per vendor mitigation framing; read-only impact means I:N/A:N; no scope change as access stays within the same server's filesystem.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
3DescriptionCVE.org
Pathling is a set of tools that make it easier to use FHIR and clinical terminology within health data analytics. Prior to version 2.0.0 of Pathling Server, Pathling's /$result endpoint allows a caller who can obtain any valid async export job ID to supply file parameter values containing path traversal sequences. The handler verifies only the supplied job and never normalises or confines the requested file path to that job's jobs/<jobId> directory before opening it as a filesystem resource. Because async export scratch space lives under the same warehouse database root as persisted resource tables, an attacker can use their own export job to read other files from the warehouse. This is fixed in Pathling Server 2.0.0. The $result handler now resolves and canonicalizes the requested file path and rejects any request that escapes the job's jobs/<jobId> directory. As an interim mitigation, disable the async export operations (pathling.operations.exportEnabled, patientExportEnabled, groupExportEnabled, bulkSubmitEnabled) or enable authentication and restrict export capability to trusted callers.
AnalysisAI
Path traversal in Pathling Server's FHIR async export /$result endpoint exposes arbitrary warehouse filesystem files to any caller who can supply a valid export job ID. All Pathling Server deployments prior to version 2.0.0 running without authentication and with async export enabled are affected, as the file handler accepts user-supplied path components without normalization or directory confinement. No public exploit code has been identified at time of analysis, but the technique is straightforward - the attacker need only initiate their own export job to obtain a valid job ID, then traverse out of the job directory to reach co-located FHIR resource tables, which may contain protected health information.
Technical ContextAI
Pathling is a FHIR (Fast Healthcare Interoperability Resources) analytics server implementing the FHIR Bulk Data Access specification. Its /$result endpoint serves files produced by asynchronous bulk export jobs. The root cause is CWE-22 (Path Traversal): the handler validates the job query parameter against existing job IDs but never normalizes or canonically resolves the file query parameter before opening it as a filesystem resource. Because async export scratch space (jobs/<jobId>/) resides under the same warehouse database root as persisted FHIR resource tables (e.g., Parquet or Delta files for Patient, Observation, Condition), a traversal sequence in file (e.g., ../../Patient/part-0000.parquet) escapes the intended sandbox. The fix in version 2.0.0 resolves and canonicalizes the path at request time, rejecting any path that does not remain within the expected jobs/<jobId> directory.
RemediationAI
Upgrade to Pathling Server 2.0.0, the vendor-confirmed patched release, which resolves the issue by canonicalizing file paths and enforcing directory confinement within jobs/<jobId> before opening any resource. The security advisory at https://github.com/aehrc/pathling/security/advisories/GHSA-5h9r-m7r5-8jxq should be consulted for full upgrade guidance. If immediate upgrade is not feasible, two interim mitigations are available: (1) Disable all async export operations by setting pathling.operations.exportEnabled, patientExportEnabled, groupExportEnabled, and bulkSubmitEnabled to false - this eliminates the attack surface entirely but also disables bulk export functionality for all consumers; (2) Enable authentication and restrict export permissions to explicitly trusted callers - this raises the bar from zero-credential exploitation to credential-holding exploitation, but does not eliminate the underlying flaw and should not be considered a permanent fix. Neither workaround substitutes for patching.
Same weakness CWE-22 – Path Traversal
View allSame technique Path Traversal
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-54640