Denon AVR Control
Security checks across static analysis, malware telemetry, and agentic risk
Overview
The skill mostly matches its Denon-control purpose, but one DLNA push helper can expose an entire local folder over the LAN while presenting the workflow as sharing a single chosen file.
Install only if you are comfortable letting the agent control your Denon receiver and, for DLNA features, share local music over your LAN. Be especially careful with the experimental push mode: use a dedicated music folder, run stop after playback, and avoid folders containing private files.
Static analysis
No static analysis findings were reported for this release.
VirusTotal
VirusTotal findings are pending for this skill version.
Risk analysis
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
Other devices on the same network may be able to browse or download more files from that folder than the single track the user intended to play.
The DLNA push workflow is described as exposing a selected local file, but the implementation starts Python's standard directory HTTP server rooted at the selected track's parent folder, making other files in that folder reachable over the LAN while it runs.
http_root = track.parent server = start_http_server(http_root, serve_ip, serve_port) cmd = [sys.executable, '-m', 'http.server', str(port), '--bind', host, '--directory', str(root_dir)]
Use this only on a trusted LAN, choose files from a dedicated music-only folder, and stop the server after playback. The script should ideally be changed to serve only the selected file or clearly warn that the whole parent folder is exposed.
Local media may remain available on the LAN until the user or agent runs the stop command.
The helper intentionally leaves a local HTTP server running after pushing a track so the receiver can fetch the media.
'note': 'HTTP server stays running so the Denon can fetch the file. Use stop to terminate it.'
Run the documented stop command when playback is finished and avoid starting the server from folders containing private non-music files.
If invoked incorrectly, the agent could change the receiver's power, input, or volume unexpectedly.
The skill can change receiver state, including power, volume, input, mute, and raw Denon commands; the instructions acknowledge this and include a reasonable guardrail.
Send one mutating action at a time unless the user explicitly wants a batch.
Confirm the receiver IP/hostname and the exact requested action before allowing mutating commands, especially raw commands or volume changes.
Music folder paths and track names may remain in local state after playback.
The local playback helper stores selected roots, search queries, and track paths in a persistent OpenClaw state file.
STATE_FILE = STATE_DIR / 'local-audio-jukebox.json' ... 'root': str(root), 'query': args.query, 'tracks': [str(t) for t in tracks]
Treat the saved state as local playback history and clear ~/.openclaw/state entries if those paths or track names are sensitive.
