Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessExtract hard-coded host key from public chart
-
ExploitGain MITM position on client-to-SFTP traffic
-
ExecutionPresent trusted host identity to connecting client
-
ImpactCapture SFTP credentials and transferred data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Key management, no hard-coded keys
|
| Exploitation Conditions | Not a default-configuration flaw. ALL of the following must hold simultaneously in a standalone deployment: sftp.enabled=true AND sftp.enableAuth=true; sftp.existingConfigSecret (existingSshConfigSecret) NOT supplied; the legacy sftp.sshPrivateKey code path still selected; a valid config-ssh Secret present to allow startup; and hostKeysFolder NOT providing a later/overriding Ed25519 signer - only then is the bundled hard-coded key presented. Critically, default all-in-one deployments and non-authenticated standalone paths never load the key and are not affected. Beyond configuration, exploitation requires the attacker to hold a traffic redirect/interception (MITM) position AND requires the victim client to actively connect and trust the chart's published host identity. These network-position and user-interaction requirements, plus the non-default config chain, sharply limit realistic exploitation. |
| Impact | This is a genuine but conditional, lower-priority issue despite its 7.0 'High' CVSS 4.0 rating. The root flaw (CWE-321) is real and public: the SFTP Helm chart shipped one unencrypted Ed25519 private host key in sftp-secret.yaml from 4.0.388 to 4.41, so the corresponding private key is known to anyone who reads the chart, and the attack is server-impersonation rather than direct compromise. However, several signals point to limited real-world risk. The CVSS 4.0 vector itself is self-limiting - AC:H and AT:P (a specific attack requirement), plus UI:A (active user interaction), mean exploitation is not trivially automatable and depends on the victim client connecting. No EPSS score, KEV listing, or POC is present in the input, so this is no public exploit identified at time of analysis and there is no evidence of active exploitation. The effective priority is further reduced because exploitation requires the attacker to already hold a network man-in-the-middle position AND the target must run a narrow, non-default configuration chain (see exploitation_conditions); default all-in-one and non-authenticated standalone paths never loaded the vulnerable key. Note a nuance: the vector sets PR:N (attacker needs no privileges on the server), which is correct for an impersonation attack, but the real gating factor is the MITM prerequisite and the UI requirement, not privileges - raw CVSS understates how much the MITM positioning constrains exploitation. |
| Exploit ScenarioDerived | An attacker extracts the hard-coded Ed25519 private host key from the public SeaweedFS Helm chart (versions 4.0.388-4.40) and positions themselves to intercept or redirect SFTP client traffic, e.g. via ARP/DNS spoofing or a compromised network path. When a client that pinned/trusted the chart's published host identity connects, the rogue endpoint presents the matching host key, the client accepts it, and the attacker captures submitted password credentials and any uploaded/downloaded data. No public exploit is identified at time of analysis, but the private key material is trivially recoverable from the chart source. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
The SeaweedFS Helm chart between versions 4.0.388 and 4.41 embedded a single, unencrypted Ed25519 SFTP host private key in the chart template k8s/charts/seaweedfs/templates/sftp/sftp-secret.yaml, so every deployment following the legacy configuration path presents the same publicly known SSH host identity. A standalone deployment is exposed only when a specific chain of non-default settings is met at once (sftp.enabled=true, sftp.enableAuth=true, no existingSshConfigSecret supplied, the legacy sftp.sshPrivateKey path selected, a valid config-ssh Secret permitting startup, and no overriding Ed25519 signer via hostKeysFolder); default all-in-one and non-authenticated standalone deployments never load the key and are unaffected. An attacker who already holds a traffic redirect or interception (MITM) position and whose victim client actually connects while trusting that published host identity could impersonate the SFTP endpoint and capture password credentials or data sent to the rogue server; there is no public exploit identified at time of analysis, and the high attack complexity, MITM positioning requirement, and mandatory user interaction keep real-world risk limited despite the 7.0 'High' CVSS 4.0 rating.
RemediationAI
Vendor-released patch: upgrade the SeaweedFS Helm chart to version 4.41 (release https://github.com/seaweedfs/seaweedfs/releases/tag/4.41), which corresponds to fix commit 742bd9f3aa9d9b83c9ad71389f66566f930acaa9 and PR https://github.com/seaweedfs/seaweedfs/pull/10390; full details are in advisory https://github.com/seaweedfs/seaweedfs/security/advisories/GHSA-hqp5-j79g-vr89. After upgrading, ensure the chart generates a unique per-install PKCS#8 Ed25519 key into the Secret mounted at hostKeysFolder (default /etc/sw/ssh) and confirm it is distinct from the historical bundled key fragment. Any deployment that previously ran the legacy path should treat its SFTP host identity as compromised: rotate all SFTP user passwords and any credentials or data that traversed that endpoint, and remove the old host entry from client known_hosts files so clients re-pin the newly generated identity. If immediate upgrade is not possible, the most direct compensating control is to set sftp.existingSshConfigSecret to a Secret you create containing a unique per-deployment PKCS#8 Ed25519 host key; this replaces the chart-generated Secret entirely and eliminates the shared identity, at the cost of managing key generation and rotation yourself. Alternatively, configure hostKeysFolder to point at a volume holding a later Ed25519 signer that overrides the bundled key, or avoid the legacy sftp.sshPrivateKey code path; note that simply toggling sftp.enableAuth off, or relying on all-in-one mode, avoids loading the key but also disables SFTP authentication and may not fit operational requirements. If SFTP is not actually needed, disabling it with sftp.enabled=false removes the exposure completely. No vendor-rated patch absence applies here, but operators who cannot patch should prioritize restricting network paths that would allow traffic redirection to the SFTP service, since exploitation requires a MITM position plus a client that actively trusts the published host identity.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-321 (Use of a Hard-coded Cryptographic Key): the Helm chart shipped actual key material rather than generating it per installation. The bundled value lived at stringData.seaweedfs_sftp_ssh_private_key inside the sftp-secret.yaml template as an unencrypted PKCS#8 Ed25519 private key (RFC 8410), the exact format the SeaweedFS SFTP server's host key loader parses. SSH host keys are the anchor of server authentication in the SSH protocol: clients pin the server's public host identity in known_hosts, and possession of the matching private key is sufficient to impersonate that host to any client that trusts it. Because the same private key was distributed with the chart, every affected deployment advertised an identical, effectively public host identity, defeating the host-verification trust model and enabling man-in-the-middle impersonation that can harvest passwords and transferred data. The fix (commit 742bd9f3aa9d9b83c9ad71389f66566f930acaa9, PR #10390) removes embedded key material from the chart, generates a fresh PKCS#8 Ed25519 host key per Helm install into a Secret, mounts it at the configurable hostKeysFolder (default /etc/sw/ssh), passes -hostKeysFolder to the server, drops the default -sshPrivateKey flag, and honors sftp.existingSshConfigSecret so operators can supply their own keys. The associated CI test explicitly asserts that the formerly bundled public-key fragment (BUNDLED = "H4McwcDphteXVullu6q7ephEN1N60z") no longer appears in rendered manifests and that two consecutive renders produce different keys, confirming per-install key generation.
Know when Kubernetes gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:A/VC:H/VI:L/VA:N/SC:H/SI:L/SA:N
Network impersonation needs no server privileges (PR:N) but requires MITM positioning (AC:H) and a trusting client connection (UI:R); impact crosses to the client (S:C) exposing credentials (C:H) with minor tampering (I:L).
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
2DescriptionCVE.org
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.seaweedfs_sftp_ssh_private_key. 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.
Articles & Coverage 1
Technical POC Analysis
CWE-321, use of a hard-coded cryptographic key.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
SeaweedFS Helm chart versions 4.0.388 through 4.41 can deploy an SFTP service with a shared, publicly known SSH host key, allowing an attacker with an existing network interception position to impersonate the service and capture credentials or data. Only non-default standalone deployments that enable SFTP authentication and use the legacy sftp.sshPrivateKey path without a unique host-key secret are exposed, while default and non-authenticated deployments remain unaffected. Security leadership should prioritize validation and remediation for affected deployments because the shared host identity is public and undermines trust in the SFTP endpoint.
No vendor-released patch identified at time of analysis. Interim mitigations: provide a unique SFTP host key via existingSshConfigSecret or hostKeysFolder instead of the legacy sftp.sshPrivateKey path; disable sftp.enableAuth where not required; restrict network access to the SFTP service; rotate or remove trust for the published host key in client known_hosts files; monitor for man-in-the-middle or anomalous SFTP authentication activity.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Kubernetes
View allA critical vulnerability in Kubernetes ingress-nginx controller allows unauthenticated attackers with pod network access
Credential-harvesting malware compromised 84 versions of 42 TanStack npm packages on 2026-05-11 via chained GitHub Actio
Kubernetes ingress-nginx contains a configuration injection vulnerability via the mirror-target and mirror-host Ingress
A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where the `auth-url` Ingres
A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where the `auth-tls-match-c
Kubernetes API server in all versions allow an attacker who is able to create a ClusterIP service and set the spec.exter
A security issue was discovered in Kubernetes where a user that can create pods on Windows nodes may be able to escalate
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Rated critical severity (CVSS 9.9), this vulne
Unauthenticated remote attackers can trigger complete database overwrites, server-side file reads, and SSRF attacks agai
The Kubernetes integration in GitLab Enterprise Edition 11.x before 11.2.8, 11.3.x before 11.3.9, and 11.4.x before 11.4
Fluentd configuration injection in the kube-logging Logging operator before 6.6.0 allows a namespace-scoped user who can
Kyverno Kubernetes policy engine prior to 1.x has a privilege escalation vulnerability (CVSS 9.9) allowing policy bypass
EUVD-2026-101519
NVD
CVE.org
EPSS
GitHub
Exploit-DB