other
- Location
SKILL.md:334- Finding
Automatic Third-Party Publication Can Expose User-Provided Content
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 64-67 and 334-341
Vulnerability Type: Unintended Data Exposure
Risk Level: HighVulnerable Code
text If the user provides actual texture images, embed them as base64 data URIs in the HTMLbash bash /home/ke/.agents/skills/here-now/scripts/publish.sh /tmp/game-buildtext This uploads the game and returns a live URL like `https://bright-canvas-a7k2.here.now/`. The link lasts 24 hours (anonymous) or permanently (with `HERENOW_API_KEY`).Technical Analysis
The Skill directs the agent to embed user-provided images into the generated HTML and then automatically publish the entire
/tmp/game-builddirectory through an external here.now publishing script. Publication is prescribed as a standard post-build action rather than an explicit, informed, opt-in operation.Embedding an image as a base64 data URI does not protect it; it places the complete image data in the published HTML. Any party able to access the resulting URL can extract the original data. Other files in the build directory may also be uploaded, including
progress.md, which records the original request, current state, and iteration history.The publisher resides outside the audited project at
/home/ke/.agents/skills/here-now/scripts/publish.sh. Its implementation and handling of uploaded data could not be verified as part of this audit.Attack Path
- A user supplies a private image or other sensitive game asset.
- The Skill embeds that content into
/tmp/game-build/index.htmlas a base64 data URI. - The Skill invokes the external
publish.shscript on the complete build directory. - The external service returns a publicly shareable URL.
- Anyone who obtains or discovers the URL can download the HTML, decode the embedded asset, and access other uploaded build files.
- If
HERENOW_API_KEYis configured, the publication may remain available permanently rather than expiring after 24 ...[truncated 502 chars]
- Remediation
View remediation
Remediation Suggestions
- Make third-party publication explicitly opt-in; local serving should be the default.
- Obtain informed user confirmation immediately before each upload.
- Clearly identify the destination service, retention period, and public accessibility.
- Display the exact files that will be uploaded and allow the user to approve or exclude each one.
- Publish from a dedicated staging directory containing only required public artifacts.
- Exclude
progress.md, prompts, iteration records, temporary files, and unrelated assets. - Warn users that base64-embedded images remain fully recoverable from published HTML.
- Avoid embedding sensitive user assets unless the user explicitly requests public inclusion.
- Vendor and audit the publishing implementation, or pin it to a verified immutable version.
- Provide a deletion or revocation mechanism for previously published content.
- Do not use authenticated permanent publication unless the user separately confirms that choice.
