Goshs File-Based ACL Authorization Bypass via Bulk Zip Download
An unauthenticated attacker can exploit CVE-2026-54719 in goshs versions up to 1.1.4 and goshs/v2 up to 2.1.0 to bypass file-based Access Control Lists (ACLs) and read any file under the webroot using the `?bulk` zip-download route, leading to unauthorized information disclosure.
A high-severity authorization bypass vulnerability, tracked as CVE-2026-54719, has been identified in goshs (versions <= 1.1.4) and goshs/v2 (versions <= 2.1.0) which allows unauthenticated attackers to read arbitrary files. This flaw is a residual vulnerability from a previous fix (GHSA-wvhv-qcqf-f3cx) which addressed ACL bypasses on state-changing routes but failed to cover the ?bulk zip-download endpoint. The bulkDownload function, invoked by requests containing ?bulk and ?file= parameters, retrieves file contents as a ZIP archive without performing the necessary .goshs ACL checks or honoring per-file block lists. This critical oversight enables any unauthenticated network attacker to bypass folder-level and file-level access controls, leading to unauthorized disclosure of confidential information from files located under the webroot. The vulnerability does not affect write or delete operations, limiting the impact to confidentiality only.
Attack Chain
- An unauthenticated attacker identifies a vulnerable
goshsinstance exposed on the network. - The attacker attempts to access a known protected file directly (e.g.,
GET /protected/secret.txt), which is correctly denied with a 401 Unauthorized response by the server's standard authorization flow. - The attacker then crafts a malicious HTTP GET request targeting the
?bulkzip-download route, appending the?file=parameter with the path to the desired protected file (e.g.,GET /?bulk&file=/protected/secret.txt). - The
goshsserver receives this request and routes it to thebulkDownloadfunction, bypassing the normal authorization gates. - The
bulkDownloadfunction processes the?file=parameter, retrieves the content of/protected/secret.txt, and streams it back to the attacker within a ZIP archive. - The attacker extracts the ZIP archive to obtain the contents of the confidential file, completely circumventing the
.goshsACL protections and any per-file block lists.
Impact
Successful exploitation of CVE-2026-54719 leads to unauthorized information disclosure, specifically the confidentiality of any file stored under the goshs webroot that relies solely on .goshs ACLs for protection. While a server-wide basic authentication mechanism (-b flag) would still gate the ?bulk route, deployments relying on per-folder .goshs ACLs are vulnerable. Attackers can exfiltrate sensitive data such as configuration files, user data, or intellectual property without any authentication, posing a significant risk to data privacy and security. The vulnerability does not allow for data modification or deletion.
Recommendation
- Deploy the Sigma rule
Detects CVE-2026-54719 Exploitation - Goshs bulk download ACL bypassto your SIEM to identify attempts to exploit this vulnerability. - Monitor web server access logs for
GETrequests to/?bulkcontaining thefile=parameter, as these indicate potential exploitation attempts. - Apply the latest security patches from
goshsdevelopers immediately, which should enforce.goshsACLs within thebulkDownloadfunction or route?bulkrequests through the same authorization gate as normal read paths. - Conduct an audit of other alternate read routes such as
?cbDownwithin yourgoshsdeployments for similar authorization bypass gaps.
Detection coverage 1
Detects CVE-2026-54719 Exploitation - Goshs bulk download ACL bypass
highDetects CVE-2026-54719 exploitation by identifying HTTP GET requests to the /?bulk endpoint with a file= parameter, indicating an attempt to bypass ACLs for unauthorized file download.
Detection queries are available on the platform. Get full rules →