🔍 CVE-2026-59179

8.3
CVSS Score
HIGH
2026-10-28
2026-10-29 19:17
✅ 완료

🇰🇷 한글 설명

OpenHop은 인터랙티브 데이터 흐름 다이어그램을 생성하는 도구입니다. 0.3.7 이전 버전의 @openhop/server는 인증 없이 flow ID를 검증하지 않아 경로 순회(path traversal)가 가능하며, CORS 설정으로 인해 악성 웹페이지에서도 접근할 수 있습니다. 이로 인해 외부 YAML 파일 열람 및 삭제가 가능합니다.

💡 쉬운 설명

인증 없이 누구나 서버의 설정 파일을 읽거나 삭제할 수 있는 취약점입니다. 악성 웹사이트 방문만으로도 로컬 서버가 공격당할 수 있습니다.

🇺🇸 원문 (English)

OpenHop is a tool for creating interactive data-flow diagrams. Prior to 0.3.7, `@openhop/server` passes unauthenticated flow route parameters from `GET /api/flows/:id` and `DELETE /api/flows/:id` in `packages/server/src/routes.ts` to `FlowStore.filePath()` in `packages/server/src/store.ts` without an identifier allow-list. The router applies `decodeURIComponent` to the id, and `path.join()` then normalizes traversal outside the configured flow directory after appending the .yaml extension. An attacker can read accessible YAML files as YAML-parsed JSON or permanently delete accessible .yaml files outside that directory, exposing configuration or secrets and disrupting dependent services. In `packages/server/src/index.ts`, CORS `origin: true` permits any browser origin, enabling a malicious webpage to target a loopback-bound instance. Docker deployments default to `HOST=0.0.0.0` and permit direct unauthenticated network access. This issue is fixed in repository release 0.3.7.

📍 영향받는 시스템

@openhop/server 0.3.7 미만 버전 (OpenHop 저장소 및 Docker 배포본)

⚔️ 공격 벡터

flow id에 '../' 경로 순회 문자열을 포함해 GET/DELETE /api/flows/:id 요청을 보내 임의 .yaml 파일을 읽거나 삭제

🛡️ 대응 방법

@openhop/server를 0.3.7 이상으로 업데이트하고, Docker 사용 시 HOST 설정을 제한하며 네트워크 접근을 차단

🔧 검증 코드

출력된 버전이 0.3.7 미만이면 취약하며, 0.3.7 이상이면 패치가 적용된 것입니다.

Shell / Script
npm ls @openhop/server 2>/dev/null | grep -E '@openhop/server@'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:H

💻 영향받는 소프트웨어

Windows iSCSI Target Service