---
id: "CVE-2026-116844"
kind: "vulnerability"
aliases: ["CVE-2026-116844"]
title: "ftpserverlib: FTP transfers can run unencrypted despite mandatory TLS"
severity: "medium"
cvss: 6.3
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["ftp", "go", "package", "self-hosted"]
not_affected_if: ["no-ftpserverlib", "sftp-only", "trusted-network-only"]
published_at: "2026-10-27T01:19:07+00:00"
first_seen_at: "2026-10-27T01:34:33+00:00"
updated_at: "2026-10-27T01:36:30+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-116844", "first_seen_at": "2026-10-27T01:34:33+00:00"}]
---

# ftpserverlib: FTP transfers can run unencrypted despite mandatory TLS

ftpserverlib through 0.32.4, a Go FTP server library, checks only the PROT flag when opening a data transfer, not whether the data connection actually uses TLS. A client that sends PROT P after PASV or PORT gets file contents and directory listings sent in cleartext, so an on-path attacker can read or modify them even where encryption is mandatory.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check whether the project depends on `github.com/fclairamb/ftpserverlib` and which version is in `go.mod` (`go list -m github.com/fclairamb/ftpserverlib`).
- Look for a server that enforces TLS on data connections (mandatory encryption settings in the FTP server config).

## Fix

- Upgrade `github.com/fclairamb/ftpserverlib` past `0.32.4` (fixed version not stated in the sources; check the upstream release notes).
- Until patched, move file transfers to SFTP or FTPS-free alternatives, or restrict FTP to trusted networks.

## Timeline

- 2026-10-27T01:34:33+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-116844

## From the sources

Fclairamb ftpserverlib through 0.32.4 contains a cleartext transmission vulnerability because TransferOpen checks only the transferTLS flag set by PROT, not whether the prepared data connection uses TLS. When a client sends PROT P after PASV or PORT, file contents and directory listings cross the network unencrypted, even with mandatory encryption, letting on-path attackers read or modify them.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
