CVE intelligence and bounded remediation

CVE-2026-40876 — goshs is a SimpleHTTPServer written in Go

High CVSS 8.8

goshs is a SimpleHTTPServer written in Go. Prior to 2.0.0-beta.6, goshs contains an SFTP root escape caused by prefix-based path validation. An authenticated SFTP user can read from and write to filesystem paths outside the configured SFTP root, which breaks the intended jail boundary and can expose or modify unrelated server files. The SFTP subsystem routes requests through sftpserver/sftpserver.go into DefaultHandler.GetHandler() in sftpserver/handler.go, which forwards file operations into readFile, writeFile, listFile, and cmdFile. All of those sinks rely on sanitizePath() in sftpserver/helper.go. helper.go uses a raw string-prefix comparison, not a directory-boundary check. Because of that, if the configured root is /tmp/goshsroot, then a sibling path such as /tmp/goshsroot_evil/secret.txt incorrectly passes validation since it starts with the same byte prefix. This vulnerability is fixed in 2.0.0-beta.6.

Severity
High
CVSS
8.8 (3.1)
Published
2026-04-21
CISA KEV
Not currently listed
Ecosystem
software/application
Weaknesses
CWE-22

Affected products

  • goshs / goshs
  • goshs / goshs / 2.0.0

Showing 2 representative product identities from 6 source matches. Confirm exact affected versions with the linked vendor and NVD evidence.

Matched remediation archetype

Path traversal, unsafe upload, and file handling

This catalog composition supplies bounded fallback guidance. Explicitly reviewed curated workflows load with the complete record below.

Check exposure

  • Trace untrusted filenames, archive entries, URLs, and path segments into read, write, include, extraction, and upload operations.
  • Identify filesystem roots, mount permissions, symbolic-link behavior, archive handling, and whether uploaded content is web-accessible or executable.
  • Review canonicalization and containment checks across supported operating systems and storage backends.

Remediate safely

  • Generate server-side storage identifiers and resolve paths beneath a fixed root using filesystem-aware containment checks.
  • Reject absolute, parent-relative, alternate-separator, device, link, and archive entries that escape the intended root.
  • Store uploads outside executable or served paths, validate type and size, and use private atomic temporary files.

Authoritative sources

Complete CVE record and remediation plan

The detailed catalog view below loads this exact record, its source evidence, and the full seven-phase agentic change plan.