Skip to content

Goshs

v2.1.2 Security

This release includes 4 security fixes for security teams reviewing exposed deployments.

βœ“ No known CVEs patched
Read the diff β†’ Tool health β†’ What is this tool? β†’
This release patches 4 known CVEs

Topics

capture-the-flag ctf devtools dns file-server file-transfer
+14 more
go http-server https-server kali-linux ldap ntlm offensive-security penetration-testing red-teaming security-tools sftp smb smtp-server webdav

Affected surfaces

auth rbac

Summary

AI summary

Updates πŸ”’ Security Fixes, ✨ New Features, and ⬆️ Dependencies across a mixed release.

Full changelog

What Changed in v2.1.2

✨ New Features

  • Payload templating β€” Files can now be rendered as Go templates on the fly. Request a file with the ?tpl query parameter and {{.VAR}} placeholders are substituted at download time. Enable with --template and pass variables via the repeatable --tpl-var KEY=VALUE flag (e.g. --tpl-var LPORT=4444). Ideal for serving payloads/scripts that need host- or port-specific values baked in without editing files on disk.
./goshs -i 10.10.14.7 --template --tpl-var LPORT=4444
  • Resumable downloads (HTTP Range support) β€” The file handler now honors Range requests, enabling partial content responses and resumable/interrupted downloads of large files.

πŸ”’ Security Fixes

  • Bulk-download ACL bypass β€” Selecting a parent directory for bulk (zip) download no longer bypasses authentication or block rules defined in nested .goshs files. ACL is now enforced per-file during the recursive zip walk, and .goshs files are excluded from archives.
  • WebDAV ACL enforcement β€” Added a .goshs guard to the WebDAV interface so directory-level access controls are now applied over WebDAV as well.
  • Brute-force lockout reset β€” Failed-login lockouts now correctly reset after the lockout duration expires instead of remaining stuck.
  • Path handling β€” Removed a double URL-decode in sanitizePath so filenames containing literal % and + are preserved correctly.
  • Share creation crash β€” Fixed a missing return after a failed os.Stat in the share handler that could lead to a nil-dereference, plus a related error-message typo.

πŸ› οΈ Build, CI & Packaging

  • Docker image publishing moved into CI, with images now pushed to GitHub Container Registry (GHCR) in addition to Docker Hub; both images are now multi-arch.
  • Refreshed shell completions (bash/zsh/fish) β€” added --ttl and --tui, and corrected the FTP flag names.
  • Makefile cleanup and COPR spec fixes.
  • Fixed integration tests.

⬆️ Dependencies

  • Bumped GitHub Actions: actions/checkout 6β†’7, docker/setup-buildx-action 3β†’4, docker/login-action 3β†’4, docker/build-push-action 6β†’7, and docker/setup-qemu-action 3β†’4.

Security Fixes

  • Bulk-download ACL bypass fixed: per‑file authentication now enforced during recursive zip creation; `.goshs` files excluded from archives
  • WebDAV ACL enforcement added via `.goshs` guard to apply directory‑level access controls over WebDAV
  • Brute-force lockout reset corrected to expire after configured duration
  • Path handling fixed: double URL‑decode removed, preserving `%` and `+` in filenames

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Goshs

Get notified when new releases ship.

Sign up free

Related context

Earlier breaking changes

  • v2.0.7 `--update` command is broken in this release.
  • v2.0.7 `--update` BROKEN! Update mechanism broken in v2.0.7.

Beta — feedback welcome: [email protected]