Description
goshs is a SimpleHTTPServer written in Go. Prior to 2.0.0-beta.4, goshs enforces the documented per-folder .goshs ACL/basic-auth mechanism for directory listings and file reads, but it does not enforce the same authorization checks for state-changing routes. An unauthenticated attacker can upload files with PUT, upload files with multipart POST /upload, create directories with ?mkdir, and delete files with ?delete inside a .goshs-protected directory. By deleting the .goshs file itself, the attacker can remove the folder's auth policy and then access previously protected content without credentials. This results in a critical authorization bypass affecting confidentiality, integrity, and availability. This vulnerability is fixed in 2.0.0-beta.4.
Published: 2026-04-10
Score: 9.3 Critical
EPSS: < 1% Very Low
KEV: No
Impact: Authorization Bypass
Action: Patch
AI Analysis

Impact

An attacker can bypass directory protection by exploiting a flaw in the authorization checks applied to state‑changing routes in goshs. The server accepts PUT, multipart POST /upload, ?mkdir, and ?delete requests even from unauthenticated clients, allowing creation, modification, or deletion of files. Deleting the ".goshs" ACL file removes the protected‑directory policy, granting full access to previously restricted content. This flaw results in a hard‑coded authorization bypass that can compromise confidentiality, integrity, and availability, and is classified under CWE‑862.

Affected Systems

Versions of goshs up to (but not including) 2.0.0‑beta.4 are affected. The vulnerability exists in the 2.0.0‑beta.1, beta.2, and beta.3 releases as well as any earlier build that did not implement the state‑changing route check. The product is the Go‑based SimpleHTTPServer known as goshs, maintained by the patrickhener project.

Risk and Exploitability

The CVSS base score of 9.3 reflects a high‑severity vulnerability. While the EPSS score is below 1 %, indicating low current exploitation probability, the flaw is publicly documented and no mitigation exists other than updating. Because the attack path requires only unauthenticated HTTP requests to a reachable server, the risk to environments running vulnerable releases is substantial. Deployment of affected versions without proper firewalls or authentication proxies creates a straightforward surface for attackers to gain unauthorized file access or alter server state.

Generated by OpenCVE AI on April 14, 2026 at 21:35 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade goshs to version 2.0.0‑beta.4 or later, which restores ACL enforcement on state‑changing routes.
  • Restrict external network access to the server by placing it behind a firewall or reverse proxy that enforces authentication.
  • If the server has already been compromised, delete any .goshs directories that lack an ACL file and review the server’s file system for unauthorized changes.
  • Monitor the server for anomalous upload or delete activity and verify that the correct ACL files are present.

Generated by OpenCVE AI on April 14, 2026 at 21:35 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-wvhv-qcqf-f3cx goshs has a file-based ACL authorization bypass in goshs state-changing routes
History

Tue, 14 Apr 2026 20:15:00 +0000

Type Values Removed Values Added
First Time appeared Goshs
Goshs goshs
CPEs cpe:2.3:a:goshs:goshs:*:*:*:*:*:go:*:*
cpe:2.3:a:goshs:goshs:2.0.0:beta1:*:*:*:go:*:*
cpe:2.3:a:goshs:goshs:2.0.0:beta2:*:*:*:go:*:*
cpe:2.3:a:goshs:goshs:2.0.0:beta3:*:*:*:go:*:*
Vendors & Products Goshs
Goshs goshs
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}


Mon, 13 Apr 2026 21:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Mon, 13 Apr 2026 13:00:00 +0000

Type Values Removed Values Added
First Time appeared Patrickhener
Patrickhener goshs
Vendors & Products Patrickhener
Patrickhener goshs

Fri, 10 Apr 2026 20:00:00 +0000

Type Values Removed Values Added
Description goshs is a SimpleHTTPServer written in Go. Prior to 2.0.0-beta.4, goshs enforces the documented per-folder .goshs ACL/basic-auth mechanism for directory listings and file reads, but it does not enforce the same authorization checks for state-changing routes. An unauthenticated attacker can upload files with PUT, upload files with multipart POST /upload, create directories with ?mkdir, and delete files with ?delete inside a .goshs-protected directory. By deleting the .goshs file itself, the attacker can remove the folder's auth policy and then access previously protected content without credentials. This results in a critical authorization bypass affecting confidentiality, integrity, and availability. This vulnerability is fixed in 2.0.0-beta.4.
Title goshs has a file-based ACL authorization bypass in goshs state-changing routes
Weaknesses CWE-862
References
Metrics cvssV4_0

{'score': 9.3, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-04-13T20:53:02.400Z

Reserved: 2026-04-09T20:59:17.620Z

Link: CVE-2026-40189

cve-icon Vulnrichment

Updated: 2026-04-13T20:52:46.390Z

cve-icon NVD

Status : Analyzed

Published: 2026-04-10T20:16:23.890

Modified: 2026-04-14T20:08:54.533

Link: CVE-2026-40189

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-04-15T15:45:07Z

Weaknesses