CVE-2026-103975: Appium: Symlink based Zip Slip in @appium/support ZIP extraction
Appium is a cross-platform automation framework for all kinds of apps, built on top of the W3C WebDriver protocol. Prior to 7.2.6, @appium/support ZIP extraction accepts an archive entry that creates a symbolic link to a location outside the extraction directory and then accepts a later regular-file entry whose legitimate name resolves through that link. The lexical containment check examines entry names without validating the symlink target or the real destination, so an attacker-controlled archive can write files to arbitrary locations writable by the Appium process. This is distinct from the earlier parent-directory entry-name traversal fixed in 7.0.6 because the bypass uses no parent-directory or absolute entry name. Depending on the writable destination, the arbitrary file write can overwrite configuration, startup scripts, or executables and lead to code execution. This issue is fixed in version 7.2.6.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
@appium/supportto a version that resolves this vulnerability.Fixed in 7.2.6
Event History
Frequently Asked Questions
Who is exposed to exploitation?
Any deployment using a version of @appium/support prior to 7.2.6 is exposed when it extracts an attacker-controlled ZIP archive. The impact depends on which locations are writable by the Appium process.
What must an attacker provide to exploit this issue?
The attacker needs to cause extraction of a crafted ZIP archive. The archive first creates a symbolic link pointing outside the extraction directory, then includes a regular-file entry whose path resolves through that link.
Are ZIP archives with only normal-looking entry names a concern?
Yes. This bypass does not require parent-directory traversal or absolute archive entry names; the unsafe path resolution occurs through a symbolic link created by an earlier archive entry.
What is the likely impact if exploitation succeeds?
A successful exploit can write files to arbitrary locations writable by the Appium process. Depending on the destination, this can overwrite configuration files, startup scripts, or executables and potentially lead to code execution.
What should be done if the affected component is in use?
Upgrade @appium/support to version 7.2.6, which fixes this issue. Until upgrading, avoid extracting attacker-controlled ZIP archives with the affected component.