Back to skill

Security audit

Integrate Claude Agent SDK with You.com MCP server

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward integration guide for Claude Agent SDK and You.com MCP, with expected external API use and dependency-install guidance but no hidden or destructive behavior found.

Install only if you intend to use Anthropic and You.com services together. Review any generated file changes before applying them, avoid sending sensitive prompts or private data through the integration, use least-privilege API keys, and prefer pinned package versions or lockfiles instead of unversioned npm/pip/npx commands.

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:27
Finding
Unpinned Third-Party Dependencies Can Introduce Mutable Supply-Chain Code## Vulnerability Details **File Location**: `SKILL.md:27-28`, `SKILL.md:389`, `SKILL.md:404`, and `SKILL.md:473` **Vulnerability Type**: Unpinned and immediately executable third-party dependencies **Risk Level**: Medium ### Vulnerable Code At lines 27-28: ```bash pip install claude-agent-sdk npm install @anthropic-ai/claude-agent-sdk ``` At line 389: ```bash npx tsx your-file.ts ``` At line 404: ```bash npm install @anthropic-ai/claude-agent-sdk ``` At line 473: ```bash npm install -D typescript@latest ``` ### Technical Analysis The Skill directs users to install third-party packages without specifying reviewed, exact versions or integrity constraints. Dependency resolution therefore depends on mutable package-registry state at installation time. The explicit use of `typescript@latest` guarantees that the selected package version can change over time. The `npx tsx` instruction is especially sensitive because, when `tsx` is not already installed locally, `npx` may retrieve the currently resolved package from the registry and execute its command immediately. Package installation may also execute lifecycle scripts under the privileges of the developer running the command. No evidence shows that the named packages are currently malicious. The security defect is that the instructions do not ensure that users receive the same reviewed artifacts, leaving the workflow exposed to registry-account compromise, malicious future releases, compromised transitive dependencies, or dependency-resolution manipulation. ### Attack Path 1. An attacker compromises a publisher or registry account, or introduces malicious code into a future direct or transitive dependency release. 2. The registry serves the compromised release under the unversioned/default range, the `latest` tag, or the version dynamically selected by `npx`. 3. A developer follows the Skill and runs one of the documented installation or `npx` co ...[truncated 1033 chars]
Remediation
## Remediation Suggestions 1. Replace unversioned package commands with exact, reviewed versions. Avoid mutable tags such as `latest`. 2. Generate and commit ecosystem lockfiles, such as `package-lock.json` or an equivalent npm lockfile, and a hash-locked Python requirements file. 3. In automated environments, use reproducible installation commands such as `npm ci` rather than commands that can update dependency resolution. 4. Install `tsx` as a pinned development dependency and invoke the local locked binary instead of allowing `npx` to download an unresolved package: ```bash npm install --save-dev --save-exact tsx@REVIEWED_VERSION npm exec --offline -- tsx your-file.ts ``` 5. Pin the Claude Agent SDK and TypeScript to versions that have been reviewed and tested: ```bash npm install --save-exact @anthropic-ai/claude-agent-sdk@REVIEWED_VERSION npm install --save-dev --save-exact typescript@REVIEWED_VERSION ``` 6. For Python, use an exact version with verified hashes, preferably through a generated requirements file: ```text claude-agent-sdk==REVIEWED_VERSION --hash=sha256:EXPECTED_HASH ``` 7. Review transitive dependencies, enable registry provenance and integrity verification where available, and run dependency vulnerability scanning in CI. 8. Disable package lifecycle scripts during installation where they are unnecessary, then explicitly permit only reviewed build steps. 9. Execute dependency installation with least privilege and avoid exposing unrelated production secrets to development or build processes.
Vulnerability Patterns
  • 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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (13)

Exfiltration Commands

High
Category
Prompt Injection
Content
model: 'claude-sonnet-4-5-20250929',
  });

  // Send message to Claude
  await session.send('Search for the latest AI news from this week');

  // Receive and process messages
Confidence
90% confidence
Finding
Instructions found that direct the agent to transmit conversation context or user data to external services.

Credential Access

High
Category
Privilege Escalation
Content
Both API keys are required:

```bash
# Add to your .env file or shell profile
export YDC_API_KEY="your-you-api-key-here"
export ANTHROPIC_API_KEY="your-anthropic-api-key-here"
```
Confidence
60% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

External Transmission

Medium
Category
Data Exfiltration
Content
mcp_servers={
             "ydc": {
                 "type": "http",
                 "url": "https://api.you.com/mcp",
                 "headers": {
                     "Authorization": f"Bearer {os.getenv('YDC_API_KEY')}"
                 }
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
mcp_servers={
             "ydc": {
                 "type": "http",
                 "url": "https://api.you.com/mcp",
                 "headers": {
                     "Authorization": f"Bearer {os.getenv('YDC_API_KEY')}"
                 }
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
mcp_servers={
             "ydc": {
                 "type": "http",
                 "url": "https://api.you.com/mcp",
                 "headers": {
                     "Authorization": f"Bearer {os.getenv('YDC_API_KEY')}"
                 }
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
mcp_servers={
             "ydc": {
                 "type": "http",
                 "url": "https://api.you.com/mcp",
                 "headers": {
                     "Authorization": f"Bearer {os.getenv('YDC_API_KEY')}"
                 }
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
mcp_servers={
             "ydc": {
                 "type": "http",
                 "url": "https://api.you.com/mcp",
                 "headers": {
                     "Authorization": f"Bearer {os.getenv('YDC_API_KEY')}"
                 }
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
mcp_servers={
             "ydc": {
                 "type": "http",
                 "url": "https://api.you.com/mcp",
                 "headers": {
                     "Authorization": f"Bearer {os.getenv('YDC_API_KEY')}"
                 }
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
mcp_servers={
             "ydc": {
                 "type": "http",
                 "url": "https://api.you.com/mcp",
                 "headers": {
                     "Authorization": f"Bearer {os.getenv('YDC_API_KEY')}"
                 }
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
mcp_servers={
             "ydc": {
                 "type": "http",
                 "url": "https://api.you.com/mcp",
                 "headers": {
                     "Authorization": f"Bearer {os.getenv('YDC_API_KEY')}"
                 }
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Missing User Warnings

Low
Confidence
92% confidence
Finding
The skill explicitly instructs creating or updating user files, including integrating into existing files, but does not warn users to review changes, back up files, or confirm overwrite/edit scope. In an agentic setting, file modification guidance without safety guardrails can lead to unintended code changes or destructive edits in the wrong file.

Missing User Warnings

Low
Confidence
95% confidence
Finding
The skill documents use of `YDC_API_KEY` in HTTP Authorization headers to `https://api.you.com/mcp` and requires prompts and tool traffic to be sent to external services, but it does not clearly disclose this data flow or associated privacy implications. Users may not realize that API keys, prompts, and retrieved content are transmitted off-host to third-party services.

Static analysis

No suspicious patterns detected.