T05 · Unauthorized Access and Privilege Escalation
Error
- Location
- SKILL.md:16
- Finding
- Full Disk Access Is Granted to a General-Purpose Python Interpreter## Vulnerability Details **File Location**: `SKILL.md:16-30`; duplicated in `references/permission-setup.md:18-31` **Vulnerability Type**: Excessive permissions and violation of least privilege **Risk Level**: High ```markdown ### 1. Grant Full Disk Access (Required) This skill requires Full Disk Access to read the macOS notification database. ```bash # Verify permission python3 -c "import os; print('OK' if os.access(os.path.expanduser('~/Library/Group Containers/group.com.apple.usernoted/db2/db'), os.R_OK) else 'FAIL')" ``` If it returns `FAIL`, follow these steps: 1. Open **System Settings** → **Privacy & Security** → **Full Disk Access** 2. Click the 🔒 lock and enter your password 3. Click **+**, press `Cmd+Shift+G`, enter `/usr/bin/python3`, click **Open** 4. Ensure the toggle is **ON** ``` ### Technical Analysis The Skill legitimately needs access to the protected macOS notification database. However, the instructions grant Full Disk Access to `/usr/bin/python3`, a general-purpose interpreter, rather than to a dedicated application or narrowly scoped helper. macOS privacy authorization attached to the interpreter can apply to other Python programs executed through that binary. Consequently, the authorization boundary is broader than this Skill and persists independently of an individual notification-reading invocation. The Skill does not automatically grant this access, but it explicitly directs the user to do so. The requested permission therefore exceeds the narrow requirement of reading one notification database. It can expose other privacy-protected files available to processes with Full Disk Access. ### Attack Path 1. The user follows the documented setup procedure and adds `/usr/bin/python3` to Full Disk Access. 2. The authorization remains enabled after the Skill finishes. 3. The user later runs another Python script through the authorized interpreter. 4. A malicious or compromised scr ...[truncated 550 chars]
- Remediation
- ## Remediation Suggestions - Use a dedicated, signed application or narrowly scoped helper instead of granting Full Disk Access to the system Python interpreter. - Clearly warn users that authorizing `/usr/bin/python3` may affect every script executed through that interpreter. - Make the authorization procedure opt-in and explain how to revoke it after use. - If a dedicated executable cannot be provided, recommend an isolated interpreter used exclusively for this Skill and document the remaining risk. - Access only the notification database path and avoid reading or enumerating unrelated protected locations.
