Skip to main content

SeaweedFS Helm Chart EUVDEUVD-2026-101519

| CVE-2026-100413 HIGH
Use of Hard-coded Cryptographic Key (CWE-321)
2026-10-14 security-advisories@github.com
7.0
CVSS 4.0 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Extract hard-coded host key from public chart
  2. Exploit
    Gain MITM position on client-to-SFTP traffic
  3. Execution
    Present trusted host identity to connecting client
  4. Impact
    Capture 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

seaweedfs 4.0.388, < 4.41

Affected Packages

euvd seaweedfs fix: 4.41

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

Vendor (github) PRIMARY 7.0 HIGH
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
vuln.today AI 6.9 MEDIUM

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).

3.1 AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:N
4.0 AV:N/AC:H/AT:P/PR:N/UI:A/VC:H/VI:L/VA:N/SC:H/SI:L/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
None
User Interaction
Active
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
High
Subsequent system: Integrity
Low
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 14, 2026 - 19:35 EUVD
CVE Published
Oct 14, 2026 - 18:17 cve.org
HIGH 7.0

DescriptionCVE.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.

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

Why It Matters

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.

Business Impact: Medium
Compensating Controls

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

EPSS Score
0.4%
Top 65% exploitable
Prevalence
Low
niche open-source distributed storage; narrow non-default SFTP Helm config path
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
Medium

Priority Score

35
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +35
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2025-1974 CRITICAL POC
9.8 Mar 25

A critical vulnerability in Kubernetes ingress-nginx controller allows unauthenticated attackers with pod network access

CVE-2026-45321 CRITICAL POC
9.6 May 12

Credential-harvesting malware compromised 84 versions of 42 TanStack npm packages on 2026-05-11 via chained GitHub Actio

CVE-2025-1098 HIGH POC
8.8 Mar 25

Kubernetes ingress-nginx contains a configuration injection vulnerability via the mirror-target and mirror-host Ingress

CVE-2025-24514 HIGH POC
8.8 Mar 25

A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where the `auth-url` Ingres

CVE-2025-1097 HIGH POC
8.8 Mar 25

A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where the `auth-tls-match-c

CVE-2020-8554 MEDIUM POC
6.3 Jan 21

Kubernetes API server in all versions allow an attacker who is able to create a ClusterIP service and set the spec.exter

CVE-2023-3676 HIGH POC
8.8 Oct 31

A security issue was discovered in Kubernetes where a user that can create pods on Windows nodes may be able to escalate

CVE-2025-55190 CRITICAL POC
9.9 Sep 04

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Rated critical severity (CVSS 9.9), this vulne

CVE-2026-34976 CRITICAL POC
10.0 Apr 02

Unauthenticated remote attackers can trigger complete database overwrites, server-side file reads, and SSRF attacks agai

CVE-2018-18843 CRITICAL POC
10.0 Dec 04

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

CVE-2026-54680 CRITICAL POC
9.9 Jul 29

Fluentd configuration injection in the kube-logging Logging operator before 6.6.0 allows a namespace-scoped user who can

CVE-2026-22039 CRITICAL POC
9.9 Jan 27

Kyverno Kubernetes policy engine prior to 1.x has a privilege escalation vulnerability (CVSS 9.9) allowing policy bypass

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy