T09 · Insecure Skill Coding Practices
- Location
REFERENCE.md:288- Finding
Persistent Browser Profile Exposes Authentication State Across Tasks
- Content
View full analysis
Vulnerability Details
File Location:
REFERENCE.md:288-296,REFERENCE.md:454-459,EXAMPLES.md:110-111
Vulnerability Type: Persistent storage of browser credentials and session cookies
Risk Level: HighVulnerable Code and Documentation
REFERENCE.md:288-296:bash --remote-debugging-port=9222 --user-data-dir=.chrome-profile --window-position=-9999,-9999 --window-size=1280,720REFERENCE.md:454-459:text ### Credential Handling - Browser uses persistent profile (`.chrome-profile/`) - Saved passwords and cookies persist between sessions - Consider using isolated profiles for sensitive operationsEXAMPLES.md:110-111:text **Note**: This example uses Chrome's user profile (`.chrome-profile/`) which may preserve session cookies between runs.Technical Analysis
Chrome is configured with a fixed
.chrome-profiledirectory. The documentation explicitly states that saved passwords and cookies persist between sessions, while the documented close operation preserves the profile.This violates session isolation: unrelated users, tasks, or agent invocations can inherit authentication cookies, browsing history, local storage, and other browser state from previous executions. Merely closing the browser does not revoke the retained authenticated sessions.
The supplied artifact does not include the referenced
src/cli.ts, so implementation-level safeguards cannot be verified. The documented configuration itself nevertheless establishes persistent cross-task browser state.Attack Path
- A user signs in to a website through the browser skill.
- The website stores an authenticated session cookie or token in
.chrome-profile. - The browser is closed, but the profile directory remains on disk.
- A later task starts Chrome with the same fixed profile directory.
- The later task navigates to the previously authenticated website and inherits the ex ...[truncated 748 chars]
- Remediation
View remediation
Remediation Suggestions
- Create a unique temporary Chrome profile for every task or security principal.
- Delete temporary profiles during cleanup, including after abnormal termination.
- Disable browser password storage and automatic sign-in.
- Make profile persistence an explicit, informed opt-in rather than the default.
- Never share persistent profiles between users or independent agent sessions.
- Store any intentionally persistent profile with restrictive filesystem permissions.
- Provide a command that securely clears cookies, local storage, service workers, caches, and saved credentials.
- Require user confirmation before reusing an authenticated session for sensitive or state-changing actions.
- Document session lifetime and isolation guarantees clearly.
