T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:20- Finding
Overbroad Collection and External Upload of the Downloads Directory
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:20-21,SKILL.md:50-54, andreferences/edge_playbook.md:23-26
Vulnerability Type: Overbroad local file access and external data disclosure
Risk Level: HighEvidence
SKILL.md:20-21:markdown | Open a webpage and capture a screenshot | 1) `launch_edge.ps1 -Url <URL>` 2) `focus_edge.ps1` 3) `capture_screenshot.ps1 -Output <path>` 4) Upload the screenshot to the requester | | Download and package files | 1) Navigate and start the download 2) Wait for `.crdownload` files to disappear 3) `download_and_zip.ps1 -SourcePath "C:\\Users\\<USER>\\Downloads" -ZipPath %TEMP%\\edge-export.zip` 4) Upload the ZIP archive |SKILL.md:50-54:markdown ### 4. Organize Downloads 1. Poll `Downloads` until all `.crdownload` files have disappeared. 2. Run `download_and_zip.ps1 -SourcePath <download directory> -ZipPath %TEMP%\\edge-export.zip`. 3. Upload the ZIP archive and describe its contents and timestamp in the response.references/edge_playbook.md:23-26:markdown ## Package Downloaded Files 1. Wait for downloads to finish by polling until `.crdownload` files disappear from the `Downloads` directory. 2. Run `download_and_zip.ps1 -SourcePath "C:\Users\<USER>\Downloads" -ZipPath "$env:TEMP\\edge-export.zip"`. 3. Upload the ZIP archive. Files may optionally be filtered by recent modification time to avoid including older files.Technical Analysis
The documented default workflow passes the user's entire Downloads directory to an archive operation and then uploads the resulting archive. The workflow does not require a dedicated task directory, a manifest of files generated by the current operation, canonical-path validation, or explicit approval of each file before transmission.
Filtering by modification time is only presented as an optional measure. Modification time alone would also be an insuffic ...[truncated 1655 chars]
- Remediation
View remediation
Remediation Suggestions
- Create a new, randomly named directory for every task and configure the browser to download only into that directory.
- Record the expected filename, download identifier, start time, final canonical path, and file hash.
- Archive only explicitly identified files generated by the current task; never use the user's general Downloads directory as the archive source.
- Resolve canonical paths and reject symlinks, junctions, reparse points, path traversal, and files outside the task directory.
- Generate and display an archive manifest containing filenames, sizes, hashes, and MIME types before upload.
- Require explicit user confirmation of the manifest before transmitting the archive externally.
- Enforce file-count and archive-size limits and reject sensitive file types unless specifically requested.
- Delete the isolated task directory and archive after confirmed delivery according to a documented retention policy.
- Include the actual PowerShell scripts in the package so their filtering, path handling, and archive behavior can be audited.
