🇰🇷 한글 설명
Pathling Server 2.0.0 미만 버전에서 $import-pnp 작업이 신뢰할 수 없는 외부 URL을 FHIR Bulk Export 엔드포인트로 허용하는 취약점이 존재합니다. 공격자가 임의의 URL을 제공하면 시스템이 해당 호스트에서 파일을 다운로드한 후 이를 신뢰할 수 있는 로컬 파일로 재분류하여 보안 허용 목록을 우회할 수 있습니다.
💡 쉬운 설명
공격자가 가짜 주소를 입력하면 서버가 그곳에서 파일을 가져와 마치 안전한 내부 파일인 것처럼 속여서 처리할 수 있는 문제입니다. 이로 인해 보안 규칙을 피해 원치 않는 데이터가 시스템에 유입될 수 있습니다.
🇺🇸 원문 (English)
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, the `$import-pnp` operation in Pathling Server accepts a caller-supplied `exportUrl` and uses it as the remote FHIR Bulk Export endpoint without constraining it to a trusted source. When PNP credentials are configured, Pathling builds a credentialed bulk-export client targeting the caller-chosen host, downloads manifest-selected files, and then reclassifies those staged files as trusted local `file://` imports - bypassing the configured `allowableSources` allowlist that protects the ordinary `$import` operation. This is fixed in Pathling Server 2.0.0. As a workaround, disable the `$import-pnp` operation (`pathling.operations.importPnpEnabled=false`) or do not configure PNP credentials.
📍 영향받는 시스템
Pathling Server 2.0.0 미만 버전
⚔️ 공격 벡터
공격자가 조작된 exportUrl을 포함한 $import-pnp 요청을 전송하여 신뢰할 수 없는 외부 서버의 데이터를 강제로 가져오게 함
🛡️ 대응 방법
Pathling Server를 2.0.0 이상 버전으로 업데이트하거나, 설정에서 pathling.operations.importPnpEnabled를 false로 변경함
🔧 검증 코드
출력된 버전 정보가 2.0.0 미만이거나 'Vulnerable'이 출력되면 취약한 상태입니다.
curl -s http://<pathling-server-ip>:<port>/version | grep -E '2\.[0-9]' || echo 'Vulnerable'