T05 · Unauthorized Access and Privilege Escalation
Error
- Location
- DAEMON_GUIDE.md:11
- Finding
- Continuous Collection of Sensitive Phone Telemetry Exceeds Least Privilege<![CDATA[ ## Vulnerability Details **File Location**: `DAEMON_GUIDE.md:11-17`, `DAEMON_GUIDE.md:41-48`, `DAEMON_GUIDE.md:72-80` **Vulnerability Type**: Excessive access to sensitive device telemetry **Risk Level**: High ### Vulnerable Documentation ```markdown 1. **Baseline Context Daemon** (`vagus-baseline.js`) — always running. Subscribes to *inference* and *sensor* feeds (attention, activity, environment, location, motion, battery, connectivity). Maintains coarse context and watches for notable transitions. When something interesting occurs, it spawns the focused daemon. 2. **Focused Sensing Daemon** (`vagus-focused.js`) — short‑lived, on‑demand. Subscribes to raw I/O streams (magnetometer, light, orientation, color, proximity). Captures high‑resolution data for a limited window (default 60s), writes to a timestamped JSONL file, then exits. ``` ```markdown This will: - Subscribe to all inference streams - Log events to stdout - Spawn focused captures when thresholds are crossed - Write focused raw data to `focused_<timestamp>.jsonl` ``` ```markdown | `vagus://inference/attention` | `availability: "available"\|"unavailable"`, `confidence` | Triggers: drop to unavailable with confidence ≥ threshold | | `vagus://sensors/activity` | `activity: "still"\|"walking"\|"running"\|"in_vehicle"` | Triggers: activity label change | | `vagus://sensors/environment` | `context: "indoor"\|"outdoor"\|"vehicle"` | Triggers: context change | | `vagus://sensors/location` | `latitude`, `longitude`, `accuracy_m` | No trigger by default; add your own geofence logic | | `vagus://sensors/motion` | `accel_mag_mean`, `accel_mag_var`, `gyro_mag_var` | Used for anomaly detection (spike in variance) | | `vagus://device/battery` | `level` (0–100), `charging` (bool) | Triggers: level change ≥ `BATTERY_CHANGE_PCT` | | `vagus://device/connectivity` | `type: "wifi"\|"cellular"\|"none"`, `connected` | Triggers: any change in type or connected state | ``` ### Technical Analysis The guide ...[truncated 2800 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Remove location from the default baseline subscriptions and require a task-specific, explicit user request before enabling it. 2. Require informed opt-in consent that identifies every resource, collection purpose, duration, transmission destination, and retention period. 3. Use short, bounded subscription windows instead of an always-running daemon. 4. Subscribe only to the minimum resources needed for the current task; do not use “all inference streams” as the default. 5. Display a persistent user-visible indicator while telemetry collection is active. 6. Automatically unsubscribe and terminate collection when the task completes, the timeout expires, or the connection is idle. 7. Store focused captures only when explicitly requested. Apply restrictive file permissions, encryption at rest, and automatic deletion. 8. Define relay-side retention, access-control, encryption, and deletion guarantees. 9. Prevent focused captures from being triggered by location, attention, or behavioral transitions unless the user has separately authorized that trigger. 10. Align `DAEMON_GUIDE.md` with the contextual-access rules in `SKILL.md` and document that permission availability does not itself authorize collection. ]]>
