OpenHop: Path Traversal in Flow ID File Operations
What fixes it
- 0.3.6@openhop/server, npmOSV
npm install @openhop/server@0.3.6
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
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.
Text from CVE List
Affected versions 2
- openhopaffected: < 0.3.7CVE List
- @openhop/server, npmfrom first release, fixed in 0.3.6OSV
References 4
- github.com/naorsabag/openhop/commit/c8190fbefa3a50e7b0c16c001d2e05b0e920cfb4Fixvia CVE List
- github.com/naorsabag/openhop/releases/tag/v0.3.7Fixvia CVE List
- github.com/naorsabag/openhop/security/advisories/GHSA-g72f-jw3w-mgh7Advisoryvia CVE List
- github.com/naorsabag/openhop/pull/190Referencevia CVE List