CVE-2026-49244 is a path traversal vulnerability in SFTPGo's ZIP download functionality affecting versions 2.2.0 through 2.7.3. The flaw uses string prefix matching (path.startswith(share_dir)) to enforce directory boundaries, which fails catastrophically on sibling directories—a share named "documents" allows access to "documents_backup" because both byte-prefix-match "documents," even though neither is contained within the other.

This is the same failure mode that has appeared in dozens of file server CVEs across Python, Go, Node, and PHP. The pattern persists because it works silently: every legitimate request returns correct output, only adversarial edge cases disclose unauthorized content. The code passes testing, passes review, and operates for years without incident—which is precisely what makes it dangerous.

The CVSS 5.9 score badly underweights this vulnerability. Because it lives in public-share code paths with no authentication barrier, an attacker who learns one share name can enumerate the entire namespace of sibling paths. If shares are named with predictable patterns ("project_name" implies "project_name_backup", "project_name_old"), this becomes a structural disclosure engine, not a one-off leak. Treat this as high severity in any deployment where share names follow naming conventions an attacker could guess.

The fix requires proper path canonicalization: use filepath.Clean() and compare canonical paths, or ensure the resolved path actually begins with the share directory's resolved path. String prefix checking on raw paths is never sufficient regardless of input sanitization elsewhere in the codebase. Audit any similar patterns in your SFTPGo deployment—share enumeration logic, archive extraction, and any path-handling code that uses string operations for boundary enforcement.