listening-to-music
Warn
Audited by Gen Agent Trust Hub on Oct 13, 2026
Risk Level: MEDIUMCOMMAND_EXECUTIONDYNAMIC_EXECUTIONEXTERNAL_DOWNLOADSINDIRECT_PROMPT_INJECTION
Full Analysis
- [DYNAMIC_EXECUTION]: The skill performs runtime installation of the
@strudel/webpackage from the NPM registry into a user-specific cache directory (~/.cache/listening-to-music/) using shell commands. It also dynamically evaluates user-supplied JavaScript and HTML content within a headless Playwright browser environment to facilitate music rendering and recording. - [COMMAND_EXECUTION]: Several scripts execute shell commands to manage environment settings and invoke external processing utilities.
common.mjsrunsnpm root -gandnpm install, whileread_score.pyutilizessubprocess.runto calloemerfor optical music recognition andpdftoppmfor image extraction from PDFs. - [EXTERNAL_DOWNLOADS]: The skill fetches audio samples and library code from external sources, including the NPM registry and public GitHub repositories (such as
felixroos/dough-samplesandtodepond/samples), to provide the necessary assets for music synthesis. - [INDIRECT_PROMPT_INJECTION]: The skill processes potentially untrusted external data, such as music notation files and web content, creating a surface for indirect prompt injection due to its execution capabilities.
- Ingestion points: Untrusted data enters via
read_score.py(MIDI, MusicXML, and images),record_page.mjs(URLs/HTML), andrender_strudel.mjs(JavaScript music code). - Boundary markers: No explicit delimiters or safety warnings are implemented to isolate instructions that might be embedded in processed music files or web data.
- Capability inventory: The skill uses
subprocess.run,execSync, and headless browser execution, which could be leveraged if malicious instructions were successfully injected. - Sanitization: Input data and file paths are not rigorously sanitized or validated before processing by external tools or evaluation in the browser environment.
Audit Metadata