Back to skill

Security audit

podcast-intel

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent Overcast podcast-analysis helper, but it handles sensitive listening history and an Overcast session cookie that users should protect.

Before installing, treat ~/.overcast/auth.json as a sensitive login credential, keep it in a private directory with restrictive permissions, avoid cloud-synced/shared storage for the database and transcripts unless intended, and consider pinning or reviewing the third-party CLI package versions before running them. Only enable the suggested daily sync if you want an ongoing local record of your listening activity.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:31
Finding
Unpinned Third-Party CLI Packages Are Installed and Executed<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 31–34 **Vulnerability Type**: Unpinned executable dependencies **Risk Level**: Medium ### Vulnerable Code ```bash uv tool install overcast-to-sqlite uv tool install podcast-transcript-convert ``` ### Technical Analysis The setup instructions install executable Python packages without pinning versions, verifying package hashes or signatures, or using a reviewed lockfile. Consequently, the code installed when a user follows these instructions can change after the Skill has been audited. Although the documented packages correspond to projects identified by the Skill, the installation commands do not cryptographically bind the installed artifacts to a specific reviewed release. A compromised package-maintainer account, malicious future release, registry compromise, or compromised transitive dependency could therefore introduce attacker-controlled code. The packages legitimately need network and local-file access to synchronize Overcast data, process transcripts, and populate a SQLite database. These capabilities make a supply-chain compromise particularly consequential because malicious package code would execute under the user's account and could access the same resources available to the legitimate tools. ### Attack Path 1. An attacker compromises a package publisher, package registry entry, release process, or transitive dependency associated with one of the documented packages. 2. The attacker publishes a malicious package version while retaining the expected package name. 3. A user follows the Skill instructions and runs an unversioned `uv tool install` command. 4. The package manager resolves the command to the malicious release and installs it. 5. Package code executes during installation or when the installed CLI is invoked for authentication, synchronization, or transcript processing. 6. The malicious code reads resources accessible to the current user, potentially including ...[truncated 1084 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin each package to an explicitly reviewed version rather than installing the latest available release: ```bash uv tool install 'overcast-to-sqlite==<reviewed-version>' uv tool install 'podcast-transcript-convert==<reviewed-version>' ``` 2. Use a lockfile or equivalent reproducible dependency manifest that also pins transitive dependencies. 3. Verify downloaded artifacts using trusted hashes or package signatures. Record expected hashes in reviewed project documentation or configuration. 4. Document the exact trusted package registry and upstream repository. Avoid fallback to untrusted indexes or similarly named packages. 5. Review new package and dependency versions before updating the pins. Use automated dependency scanning and provenance verification where available. 6. Run synchronization tools with least privilege. Ensure `~/.overcast/auth.json` is readable only by its owner, for example: ```bash chmod 600 ~/.overcast/auth.json ``` 7. Where practical, isolate the tools in a dedicated environment or operating-system account with access only to the required Overcast files and archive directories. 8. Restrict outbound network access to endpoints required for Overcast, podcast feeds, and transcript retrieval, reducing the exfiltration opportunities available to a compromised dependency. ]]>
Vulnerability Patterns
  • Rogue AgentSelf-Modification, Session Persistence
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The skill description tells users it will sync listening history, transcripts, and analysis inputs into local storage, but it does not explicitly warn that this creates a durable local record of potentially sensitive personal media consumption and derived insights. Users may invoke the skill without understanding the privacy implications, leading to inadvertent collection and retention of sensitive behavioral data.

Session Persistence

Medium
Category
Rogue Agent
Content
Store auth.json somewhere stable, e.g. ~/.overcast/auth.json:
```bash
mkdir -p ~/.overcast
mv auth.json ~/.overcast/auth.json
```
Confidence
84% confidence
Finding
The instructions advise persisting an Overcast session cookie in ~/.overcast/auth.json without guidance on restrictive file permissions or secret handling. If another local user, malware, backups, or sync tooling can access that file, the stored session may be reused to access the user's Overcast account until the cookie is rotated or expires.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The recommended daily cron job encourages continuous background syncing of Overcast activity without warning that it will keep appending/updating a local behavioral history database over time. This can increase privacy exposure by collecting more complete and persistent records than a user may expect, especially on shared or lightly secured systems.

Static analysis

No suspicious patterns detected.