Back to skill

Security audit

Pywayne Llm Chat Bot

Security checks for vulnerabilities and agentic risk

Overview

This skill is documentation for using an LLM chat library, with disclosed external API use and session history features that fit its stated purpose.

Install only if you intend to send chat prompts to an OpenAI-compatible provider. Configure the base URL and API key for a provider you trust, avoid sending secrets or sensitive data unless that provider is approved for it, and set a finite session timeout if retained chat history is not desired.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Memory PoisoningPersistent Context Injection, Context Window Stuffing, Memory Manipulation
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (7)

Memory Manipulation

High
Category
Memory Poisoning
Content
for msg in chat.history:
    print(f"{msg['role']}: {msg['content']}")

# Clear history
chat.clear_history()
```
Confidence
80% confidence
Finding
Skill manipulates agent memory, state, or stored context. Memory corruption can alter personality, override safety rules, or cause unpredictable behavior.

Memory Manipulation

High
Category
Memory Poisoning
Content
| `ask(prompt, stream=False)` | Single-turn conversation without history |
| `chat(prompt, stream=True)` | Multi-turn conversation with history tracking |
| `update_system_prompt(prompt)` | Update system prompt in-place |
| `clear_history()` | Clear conversation history (keeps system prompt) |
| `history` (property) | Get copy of current conversation history |

### ChatManager
Confidence
80% confidence
Finding
Skill manipulates agent memory, state, or stored context. Memory corruption can alter personality, override safety rules, or cause unpredictable behavior.

External Transmission

Medium
Category
Data Exfiltration
Content
# Create chat instance
chat = LLMChat(
    base_url="https://api.example.com/v1",
    api_key="your_api_key",
    model="deepseek-chat"
)
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
# Create chat instance
chat = LLMChat(
    base_url="https://api.example.com/v1",
    api_key="your_api_key",
    model="deepseek-chat"
)
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
# Create chat instance
chat = LLMChat(
    base_url="https://api.example.com/v1",
    api_key="your_api_key",
    model="deepseek-chat"
)
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
| Parameter | Default | Description |
|-----------|---------|-------------|
| `base_url` | required | API base URL (e.g., `https://api.deepseek.com/v1`) |
| `api_key` | required | API authentication key |
| `model` | `"deepseek-chat"` | Model name |
| `temperature` | `0.7` | Controls randomness (0-2) |
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The documented default value for `system_prompt` is the Chinese string `你是一个严谨的助手`, which imposes a specific language/locale by default. The file does not indicate that users can opt in to this locale preference or that the default is region-specific and justified.

Static analysis

No suspicious patterns detected.