PerplexedBrowser: When an Agent Browser Can Read Local Files
In Zenity's controlled demonstration with two test accounts and a dummy local credentials file, a poisoned calendar invite steered Perplexity Comet through an attacker site to local file navigation, then exfiltrated file contents in URL query parameters. An initial file:// block was bypassed with view-source:file://; Zenity verified an additional fix on February 13, before its March 3 publication.
Threat Analysis
- The entry point is normal workflow content. A calendar invite contains benign meeting text plus hidden prompt-injection content that Comet reads when the user asks it to accept the meeting.
- The agent is routed through attacker-controlled instructions. Fake button-like markup and system-reminder-style phrasing steer Comet to an external site in background mode.
- The dangerous boundary is local file access. The site redirects Comet to a
file://path, then frames directory traversal and file reading as part of the task. - The exfiltration path is ordinary browsing. Once file contents enter agent context, Comet can place them in a URL and navigate to an attacker-controlled endpoint. No special exfiltration API is needed.
- The strongest fix is an execution boundary. Prompt filtering may catch obvious payloads, but the durable control is to deny autonomous agent access to local filesystem schemes unless a trusted, explicit policy grants it.
Applicable AIDEFEND Defenses (4)
What Defenders Should Do Now
- Block autonomous browser agents from using
file://, loopback admin pages, password managers, identity portals, and local developer resources unless an explicit trusted workflow grants access. - Run calendar, email, webpage, and document content through content demotion before it reaches a tool-capable agent planner.
- Validate each browser action against the trusted task and exact destination/resource policy. A signed tool-name scope alone cannot distinguish file access within an allowed browser operation.
- Tag local-file data and block it from external URLs, messages, screenshots, model calls, and remote media loads.
- Add detections for untrusted content followed by background navigation,
file://access, local-file reads, and unusual outbound URLs.
1 additional consideration
Native browser navigation and local-file policy
Conclusion
This controlled case shows how untrusted calendar content can steer an agent across the local-file boundary. Relevant defenses need to cover browser-native navigation paths, independent runtime isolation and data-aware outbound controls. Tool-name grants and a safe HTTPS fetch service do not automatically enforce native browser paths; the exact file:// and view-source:file:// routes must be tested.
Last updated: