CVE-2026-100413: SeaweedFS: Hard-coded SSH host key can be presented by certain standalone SFTP Helm deployments
SeaweedFS is a distributed storage system for files and blobs. From 4.0.388 until 4.41, the SFTP Helm chart embedded one unencrypted Ed25519 private host key in k8s/charts/seaweedfs/templates/sftp/sftp-secret.yaml as stringData.seaweedfssftpsshprivatekey. A standalone deployment presented that public key when sftp.enabled and sftp.enableAuth were true, sftp.existingConfigSecret was not supplied, the legacy sftp.sshPrivateKey path remained selected, a valid config-ssh Secret allowed startup, and hostKeysFolder did not provide a later Ed25519 signer. An attacker able to redirect or intercept client traffic could impersonate that SFTP endpoint to clients that trusted the published host identity, exposing password credentials or data sent to the rogue endpoint. Default all-in-one and non-authenticated standalone paths did not load the key. This issue is fixed in version 4.41.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
SeaweedFSto a version that resolves this vulnerability.Fixed in 4.41
Event History
Frequently Asked Questions
Which deployments are exposed?
Affected deployments are standalone SFTP Helm deployments from 4.0.388 until 4.41 that enable both sftp.enabled and sftp.enableAuth, do not supply sftp.existingConfigSecret, retain the legacy sftp.sshPrivateKey path, have a valid config-ssh Secret, and do not provide a later Ed25519 signer through hostKeysFolder. Default all-in-one deployments and non-authenticated standalone paths do not load the embedded key.
What does an attacker need to exploit this issue?
An attacker must be able to redirect or intercept SFTP client traffic and present the known host identity to a client that trusts it. Successful impersonation can expose passwords or data sent by the client to the rogue endpoint.
How can I determine whether my deployment used the embedded host key?
Review the SFTP Helm values and rendered resources for the listed conditions, especially the absence of sftp.existingConfigSecret, use of the legacy sftp.sshPrivateKey path, and lack of a later Ed25519 signer in hostKeysFolder. Also check whether the rendered sftp-secret contains stringData.seaweedfs_sftp_ssh_private_key.
What remediation is available?
Upgrade SeaweedFS to version 4.41, which fixes the issue. If an immediate upgrade is not possible, avoid the affected legacy key path by supplying your own host-key configuration through the available deployment settings.