---
id: CVE-2026-59179
title: 'OpenHop: Path Traversal in Flow ID File Operations'
summary: >-
  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 `Fl…
severity: high
cvss: 8.3
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:H'
cvssSource: cna
cwe:
  - CWE-22
vendor: naorsabag
product: openhop
affected:
  - openhop < 0.3.7
ssvc:
  exploitation: poc
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-10-29T18:33:12.643459Z'
exploitAvailable: true
published: '2026-10-28'
updated: '2026-10-29'
sourceUpdated: '2026-10-29T18:33:40.230Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-59179'
references:
  - url: >-
      https://github.com/naorsabag/openhop/security/advisories/GHSA-g72f-jw3w-mgh7
    label: >-
      https://github.com/naorsabag/openhop/security/advisories/GHSA-g72f-jw3w-mgh7
  - url: 'https://github.com/naorsabag/openhop/pull/190'
    label: 'https://github.com/naorsabag/openhop/pull/190'
  - url: >-
      https://github.com/naorsabag/openhop/commit/c8190fbefa3a50e7b0c16c001d2e05b0e920cfb4
    label: >-
      https://github.com/naorsabag/openhop/commit/c8190fbefa3a50e7b0c16c001d2e05b0e920cfb4
  - url: 'https://github.com/naorsabag/openhop/releases/tag/v0.3.7'
    label: 'https://github.com/naorsabag/openhop/releases/tag/v0.3.7'
  - url: 'https://github.com/advisories/GHSA-g72f-jw3w-mgh7'
tags:
  - cve.org
  - exploit-available
  - ghsa
  - npm
epss: 0.0039
epssPercentile: 0.33167
aliases:
  - GHSA-g72f-jw3w-mgh7
ecosystem: npm
patched:
  - '@openhop/server 0.3.6'
ingestedAt: '2026-09-10T00:26:24.579Z'
---

## Overview

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.

## Affected

- `openhop < 0.3.7`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Package advisory (CVE-2026-59179)

Affected packages:

- `@openhop/server <= 0.3.5`

Patched in:

- `@openhop/server 0.3.6`

Source: https://github.com/advisories/GHSA-g72f-jw3w-mgh7
