Back to skill

Security audit

Negotiation

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a negotiation helper, but it includes instructions that can expose a user's private price floor and contains hidden profile examples that could be mistaken for confirmed user preferences.

Review and edit the P2P template before use so it never reveals your floor, ceiling, walk-away point, urgency, salary, or other leverage. Keep the skill at draft-only or approval-required modes unless you have set very specific limits, and treat the hidden Negotiation Profile entries as placeholders rather than real user memory.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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)

T09 · Insecure Skill Coding Practices

Warning
Location
p2p.md:20
Finding
Mandatory Disclosure of the Principal's Confidential Floor Price## Vulnerability Details **File Location**: `p2p.md`, lines 20–25 **Vulnerability Type**: Disclosure of confidential negotiation limits **Risk Level**: Medium ### Vulnerable Code ```md ## Handling Lowballers Never insult or ignore completely. Template: > "Thanks for your interest! My minimum is €[floor]. Let me know if that works." ``` This conflicts with the safety rule in `SKILL.md`, line 46: ```md 1. **Never reveal your limits** — "My budget is €500" gives away your ceiling ``` ### Technical Analysis The standard P2P response template directs the agent to substitute the principal's confidential minimum acceptable price into an outbound message. This discloses the exact walk-away threshold to an untrusted buyer and directly contradicts the Skill's core rule against revealing negotiation limits. Because the response is prescribed as a template rather than identified as requiring approval, an agent may disclose the floor during routine handling of a low offer. The buyer can then anchor subsequent offers at that threshold and has no incentive to offer a higher amount. ### Attack Path 1. The principal supplies a confidential minimum acceptable price during mandatory negotiation setup. 2. A buyer makes a low offer or asks for the lowest acceptable price. 3. The agent selects the standard lowballer template in `p2p.md`. 4. The agent replaces `[floor]` with the principal's confidential floor price. 5. The outbound response reveals the exact walk-away threshold. 6. The buyer offers only that amount or uses the disclosed limit to apply targeted negotiating pressure. ### Impact Assessment The issue does not provide system privileges, code execution, or access to the host environment. Its scope is the affected P2P negotiation and the confidential pricing information entrusted to the agent. Successful exploitation may: - Reveal the principal's exact minimum acceptable price. - Eliminate the principal's negotiating leverage. - Reduce the final sale price an ...[truncated 179 chars]
Remediation
## Remediation Suggestions Replace the floor-disclosing template with a counteroffer that does not expose the principal's limit: ```md > "Thanks for your interest. I can consider €[counteroffer]. Let me know if that works." ``` Apply the following hardening measures: 1. Require `[counteroffer]` to remain above the confidential floor by a principal-approved margin. 2. Explicitly prohibit inserting the floor, ceiling, walk-away threshold, target, or approval threshold into outbound messages. 3. Require principal approval before disclosing any pricing constraint. 4. Add a validation step that compares draft messages against confidential setup parameters and blocks drafts containing exact limits. 5. Reconcile category-specific templates with the global safety rules in `SKILL.md`, making the global nondisclosure rule authoritative in case of conflict. 6. Add a safe refusal template for requests such as “What is your absolute minimum?” without revealing the actual floor.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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)

Hidden Instructions

High
Category
Prompt Injection
Content
*Build over time. One line per insight. Confirm before storing.*

### Known Limits
<!-- "Domains: max €2000 confirmed" "Freelance: min €75/hr stated" -->

### Autonomy Grants
<!-- "P2P selling: Level 3 (2024-01)" "Salary: Level 1 only (confirmed)" -->
Confidence
70% confidence
Finding
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
1. **Never reveal your limits** — "My budget is €500" gives away your ceiling
2. **Never accept first offer** — Even if it's good, test for flexibility
3. **Never commit without approval** (unless Level 4 in that category)
4. **Log everything** — Every offer, counteroffer, timestamp, who said what
5. **Detect manipulation** — Artificial urgency, emotional pressure, "final offer" games
6. **Protect sensitive info** — Current salary, other offers, urgency level = leverage you lose
Confidence
75% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Natural-Language Policy Violations

Medium
Confidence
90% confidence
Finding
The statement about current salary being illegal to ask 'in many places' is jurisdiction-specific legal guidance presented without requiring validation for the user's location. In a professional negotiation skill, users may rely on this claim when responding to employers, which could lead to inaccurate legal assertions, damaged negotiations, or noncompliant advice in places where the law differs.

Static analysis

No suspicious patterns detected.