Skip to content

← Actionable
High, CVSS 7.5amended

goshs: File-based .goshs ACL authorization bypass via the ?bulk zip-download route (unauthenticated read; residual of GHSA-wvhv-qcqf-f3cx)

CVE-2026-54719GHSA-rmxw-pq4x-3fvh

What to do

Partial vendor fix. Follow the primary source's mitigation guidance and check back for a fix.

This page has no inventory attached, so it cannot say whether you are affected. A vendor fix is not proof that your deployment is fixed.

Affected packages

  • Go goshs.de/goshs

    Affected
    <= 1.1.4
    Fixed in
    no fixed version recorded
  • Go goshs.de/goshs/v2

    Affected
    <= 2.1.0
    Fixed in
    2.1.1
  • Go github.com/patrickhener/goshs/v2

    Affected
    <= 2.1.0
    Fixed in
    2.1.1
  • Go github.com/patrickhener/goshs

    Affected
    <= 1.1.4
    Fixed in
    no fixed version recorded

Sources

Severity and exploitation
Exploitation
No confirmed exploitation recorded. Patch Next marks exploitation only from CISA KEV.
CVSS
7.5 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
EPSS
  • CVE-2026-54719: 0.35% estimated exploitation activity in the next 30 days; percentile 28.93 (FIRST EPSS, 2026-11-03). This is a model estimate, not proof of exploitation or customer exposure.
Source description

As published by the source; long descriptions are shortened.

GHSA-wvhv-qcqf-f3cx fixed the per-folder .goshs ACL bypass on the state-changing routes (PUT/POST upload/?mkdir/?delete) and added recursive ACL resolution, and its description states the read/list path correctly enforces .goshs. That premise does not hold for the ?bulk zip-download route. bulkDownload (httpserver/updown.go) takes one or more ?file= parameters, runs each through sanitizePath(fs.Webroot, file), and streams the contents back as a ZIP without ever calling findEffectiveACL/applyCustomAuth. It is dispatched from earlyBreakParameters (?bulk) before the normal doDir/doFile/sendFile flow that performs the ACL check. An unauthenticated attacker can therefore read any file under the webroot protected solely by a .goshs ACL, bypassing both the folder auth (401 on the normal path) and the per-file block list (404 on the normal path). Same authorization-inconsistency root cause as the original advisory, surviving on a read route the fix did not cover. Proof of concept (live,…

Dates and revisions
Published by the source
Last modified by the source
Source last checked
  1. Revision 3 · amended ·

    Amended from ghsa record GHSA-rmxw-pq4x-3fvh

  2. Revision 2 · amended ·

    Amended from osv record GO-2026-6133

  3. Revision 1 · created ·

    Published from osv record GHSA-rmxw-pq4x-3fvh

Agent brief

Preview the exact text before you copy it. Commands are read-only suggestions; review them before running anything.

# Patch Next advisory brief: CVE-2026-54719

Advisory: goshs: File-based .goshs ACL authorization bypass via the ?bulk zip-download route (unauthenticated read; residual of GHSA-wvhv-qcqf-f3cx)
IDs: CVE-2026-54719, GHSA-rmxw-pq4x-3fvh
Record: https://patchnext.com/advisories/cve-2026-54719 (revision 3, source checked 26 Oct 2026, 15:27 UTC)
Inventory: none attached. This brief comes from a public page and does not say whether any deployment is affected.
Severity: High (CVSS 7.5)
Exploitation: no confirmed exploitation recorded. Patch Next confirms exploitation only from CISA KEV.
Vendor response: Partial vendor fix; fixed versions by package: goshs.de/goshs/v2 2.1.1; github.com/patrickhener/goshs/v2 2.1.1. A vendor fix does not mean a deployment is fixed.

## Affected components
- Go goshs.de/goshs: affected <= 1.1.4
- Go goshs.de/goshs/v2: affected <= 2.1.0; fixed in 2.1.1
- Go github.com/patrickhener/goshs/v2: affected <= 2.1.0; fixed in 2.1.1
- Go github.com/patrickhener/goshs: affected <= 1.1.4

## Suggested inspection (read-only)
- Go goshs.de/goshs: check the installed version with your package manager.
- Go goshs.de/goshs/v2: check the installed version with your package manager.
- Go github.com/patrickhener/goshs/v2: check the installed version with your package manager.
- Go github.com/patrickhener/goshs: check the installed version with your package manager.

## Supported action
No complete vendor fix is recorded. Follow the primary source's mitigation guidance and check this record again before closing anything.

## Required regression checks
- Run the test suite and a production build.
- Exercise the features that depend on goshs.de/goshs, goshs.de/goshs/v2, github.com/patrickhener/goshs/v2, github.com/patrickhener/goshs.
- Repeat the inspection and confirm that only fixed versions remain installed.

## Rollback considerations
- Keep the previous lockfile and deployment artifact. Rolling back reinstates the vulnerable version, so apply any documented mitigation while you fix forward.

## Unresolved questions
- Which deployments run an affected version?
- Exploitation status can change. Check again before lowering the priority.
- Mark the work resolved only after the fixed version is verified in production.

## Sources
- Verified: https://osv.dev/vulnerability/GHSA-rmxw-pq4x-3fvh (OSV record GHSA-rmxw-pq4x-3fvh lists affected ranges: Go github.com/patrickhener/goshs >=0 =0 =0 =0 <2.1.1 (fixed))
- Verified: https://osv.dev/vulnerability/GO-2026-6133 (OSV record GO-2026-6133 lists affected ranges: Go github.com/patrickhener/goshs >=0; Go goshs.de/goshs >=0; Go goshs.de/goshs/v2 >=0 <2.1.1 (fixed))
- Verified: https://github.com/advisories/GHSA-rmxw-pq4x-3fvh (GitHub-reviewed advisory GHSA-rmxw-pq4x-3fvh lists affected ranges: Go github.com/patrickhener/goshs >=0 =0 =0 =0 <=2.1.0)

Commands are suggestions: review each one before running it.

Loading voting…