Appium Java Client Allows Network Pivot via Unvalidated directConnect Redirect (CVE-2026-43910)
A vulnerability, CVE-2026-43910, in Appium's java-client allows a malicious Appium server to redirect all subsequent session traffic to an arbitrary internal endpoint by injecting unvalidated `directConnectHost` and `directConnectPort` parameters when `directConnect(true)` is enabled, potentially leading to session traffic interception, network pivoting, and cloud credential theft.
A high-severity vulnerability (CVE-2026-43910) has been identified in appium/java-client versions 8.2.1 through 10.1.0. When the directConnect(true) option is enabled, the AppiumCommandExecutor component of the client unconditionally accepts and trusts directConnectHost, directConnectPort, and directConnectPath parameters supplied by an Appium server in its NEW_SESSION response. This lack of validation allows a malicious or compromised Appium server to force the java-client to silently redirect all subsequent session traffic to an attacker-specified internal host, including loopback addresses (127.0.0.1), RFC-1918 private IP ranges, or link-local addresses (169.254.169.254) such as AWS EC2 Instance Metadata Service (IMDS) endpoints. This flaw enables attackers to intercept session data, pivot within internal networks, and potentially steal cloud credentials, posing a significant risk, particularly in CI/CD environments where automated tests frequently use directConnect(true).
Attack Chain
- An attacker controls or compromises an Appium server that a vulnerable
java-clientapplication is configured to connect to. - During the
NEW_SESSIONresponse phase, the attacker-controlled server injects maliciousdirectConnectHost,directConnectPort, anddirectConnectPathparameters. These parameters point to an internal IP address, such as169.254.169.254(for IMDS),127.0.0.1(for local services), or other RFC-1918 addresses within the target network. - A legitimate
java-clientapplication, withdirectConnect(true)enabled, initiates a session and connects to the attacker-controlled Appium server. - The vulnerable
AppiumCommandExecutorcomponent within thejava-clientreceives and unconditionally accepts the maliciousdirectConnectparameters from the server. - The
java-clientthen silently reconfigures its connection, redirecting all subsequent WebDriver commands and session traffic from the original Appium server to the attacker-specified internal endpoint, without performing any host validation or notifying the user. - The attacker intercepts this redirected session traffic, which may contain sensitive WebDriver commands or responses. They can then leverage the client's internal network access to initiate further requests against internal services (e.g., IMDS endpoints) from the context of the vulnerable client, enabling data exfiltration or cloud credential theft.
Impact
The successful exploitation of CVE-2026-43910 allows for significant impact, particularly in automated testing and CI/CD pipelines. Attackers can achieve full interception of sensitive session traffic, potentially exfiltrating data or command responses. More critically, the vulnerability enables a network pivot, allowing the client to be weaponized to access internal hosts, including private network ranges (RFC-1918) and link-local addresses such as the AWS IMDS endpoint (169.254.169.254). This access can lead to the theft of cloud credentials, escalating the attack to compromise cloud infrastructure. The vulnerability is considered high severity, rated approximately 8.1, especially within CI/CD environments where directConnect(true) is often configured in shared base settings, making large numbers of client applications vulnerable.
Recommendation
- Prioritize patching
io.appium:java-clientto a version greater than 10.1.0 to address CVE-2026-43910. - Review and update
io.appium:java-clientdependencies to ensure they are not within the vulnerable range (>= 8.2.1, <= 10.1.0). - If immediate patching is not possible, avoid using
directConnect(true)with untrusted Appium servers. - Monitor network connections originating from systems running
java-clientfor suspicious outbound connections to RFC-1918 IP addresses or the169.254.169.254IMDS endpoint, which could indicate exploitation of this or similar vulnerabilities.
Indicators of compromise
1
ip
| Type | Value |
|---|---|
| ip | 169.254.169.254 |