CVE-2026-66063
mediumpriority · track · 0EPSS 0.003 · 28 %ileEUUSEPSS · scored 2026-10-28
goshs is a feature-rich single-binary file server for red teamers and developers. Prior to 2.1.5, the httpserver/updown.go multipart upload handler split part.FileName() on / but did not reject .., allowing an unauthenticated upload with filename .. to create a file outside the served tree. This issue is fixed in version 2.1.5.
cvss
Technical severity, 0–10. One row per scoring source.
base score 0–10 · higher = more severe · hover a vector to decode
ssvc
A stakeholder decision — act, attend, or track — from exploitation and impact.
weaknesses
The CWE weakness classes this flaw belongs to.
affected products (7)
Products and version ranges known to be affected.
- Go github.com/patrickhener/goshs/v2< 2.1.5-0.20260727065949-f3ef599e4091osvUSpkg:golang/github.com/patrickhener/goshs/v2
advisories (2)
Vendor and ecosystem advisories describing this.
- GHSA-wg2q-39h6-66x9goshs has a Path Traversal issue2026-07-28ghsa · osvUS
## Summary The multipart upload filename fix splits on the path separator but never rejects dot-dot, allowing a write outside the served tree. ## Finding (Medium): upload filename escapes the served tree (residual of CVE-2026-35393) The multipart filename fix (updown.go lines 135-136) splits on the path separator but never rejects "..". Uploading with filename=".." results in os.Create against the parent of the upload folder with a trailing marker character, outside the served tree, and the subsequent failed rename leaves that file behind. Verified: a file containing ESCAPED_WRITE_PROOF was written outside the webroot, unauthenticated, with the default configuration. Not claimed: a Windows-specific variant (Go's Part.FileName() already applies filepath.Base). ## Suggested fixes 1. Reject any upload filename that is "..", is empty after sanitisation, or resolves outside the upload folder; validate the final resolved destination rather than only transforming the input. ## Tooling AI assistance was used while investigating. The finding was reproduced against a running server on loopback.
- GO-2026-6137goshs has a Path Traversal issue in github.com/patrickhener/goshs2026-08-18vendor · osvUS
goshs has a Path Traversal issue in github.com/patrickhener/goshs
also known as (5)
Other names and identifiers for this entity.
sources
Which sources assert this record, and when.
references (7)
External citations — patches, advisories, analysis.
- https://github.com/goshs-labs/goshs/commit/f3ef599e409151d1380866e47de8b1afb0bb54facnnvd
- https://github.com/goshs-labs/goshs/releasesPatchcnnvd
- https://github.com/goshs-labs/goshs/security/advisories/GHSA-wg2q-39h6-66x9cnnvd
- https://github.com/goshs-labs/goshs/commit/f3ef599e409151d1380866e47de8b1afb0bb54faenisa_euvd
- https://github.com/goshs-labs/goshs/security/advisories/GHSA-wg2q-39h6-66x9enisa_euvd
- https://github.com/goshs-labs/goshs/commit/f3ef599e409151d1380866e47de8b1afb0bb54fanvd
- https://github.com/goshs-labs/goshs/security/advisories/GHSA-wg2q-39h6-66x9nvd
Attackers weaponise vulnerabilities like this against internet-exposed services. See what is exposed on your perimeter with a free passive scan.
Free scan