DataSourceStream in the :xds module resolves control-plane-supplied filename and environment_variable fields from SDS Secret resources without any allow-list or base-directory confinement. A semi-trusted or compromised xDS control plane (or an attacker who can MITM SDS responses) can read arbitrary local files and environment variables on the xDS client host.
Affected component: xds/src/main/java/com/linecorp/armeria/xds/DataSourceStream.java
Introduced in: Armeria 1.38.0 (commit b199560b10, "Add support for SDS", #6597)
Affected versions: 1.38.0, 1.39.0
A semi-trusted or compromised xDS control plane (or an attacker who can inject/MITM SDS responses) can:
/etc/passwd, mounted Kubernetes service-account tokens, cloud credential files, etc.AWS_SECRET_ACCESS_KEY, CI tokens, database credentials, etc.The read bytes are consumed as TLS key/cert/CA material. Combined with CWE-295 (silent disabling of upstream TLS peer verification), the exfiltrated secret can be presented to an attacker-chosen upstream, enabling data exfiltration. This is a confused-deputy / information-disclosure primitive driven entirely by control-plane-supplied configuration.
Severity: High — arbitrary host-level file and environment variable read via control-plane-pushed configuration.
1.40.0
The fix should:
filename resolution to an operator-configured allow-list of base directories. After normalization, reject any path that escapes the allow-listed root.environment_variable behind an explicit operator allow-list of permitted variable names.filename and environment_variable DataSources for control-plane-delivered (SDS) secrets unless explicitly enabled by the operator. This is stricter than upstream Envoy but appropriate when the control plane is not fully trusted.DataSource bytes only (delivered over the SDS stream itself) and auditing control-plane configurations to ensure no filename or environment_variable DataSources are present.{
"cwe_ids": [
"CWE-73"
],
"github_reviewed": true,
"github_reviewed_at": "2026-06-18T17:22:17Z",
"nvd_published_at": "2026-06-19T06:17:01Z",
"severity": "MODERATE"
}