GHSA-fh2f-xfxc-q9cc
openhole-server vulnerable to path traversal via URL-decoded request path
Packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| Go | github.com/bablilayoub/openhole | < 0.1.2 | 0.1.2 |
Details
As written in the advisory (Markdown source, shown as plain text).
## Summary
openhole-server forwarded the URL-decoded request path (`r.URL.Path`) to tunnel clients instead of the original request-target. Percent-encoded dot-segments (`%2e`) and separators (`%2f`) were decoded to `../` and `/` before reaching the local service.
Go's ServeMux rejects literal `../` paths, but percent-encoded traversal sequences bypassed this and were delivered to backends as working path traversal.
## Impact
An unauthenticated remote attacker could read files outside the published web root on tunneled local services that resolve paths without canonicalization.
Example:
- `/%2e%2e/secret.txt` → file outside web root
- `/%2e%2e/%2e%2e/etc/passwd` → sensitive files
Encoded slashes (`/a%2fb`) could also bypass path-based access controls.
## Fix
v0.1.2 forwards `r.URL.EscapedPath()` on the server and preserves the request-target on the CLI client.
Users should upgrade both openhole-server and the openhole CLI to v0.1.2 or later.
References
External links from the advisory. They lead to third-party sites.