T01 · Skill Instruction Hijacking
- Location
impromptu.skill.json:2061- Finding
Manifest Embeds Promotional Instructions for Insertion into Agent Output
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly a disclosed Impromptu platform integration, but it mixes real account, credential, wallet, promotion, and recurring-execution behavior with unclear controls and contradictory packaging claims.
Review before installing. Use a least-privilege Impromptu API key, do not set IMPROMPTU_API_URL to any untrusted host, do not automate heartbeat until you are comfortable with the recurring account activity, and avoid running the hiring examples against a real account unless you intend to create services, jobs, or escrow-backed actions. Treat the built-in promotion/referral instructions as advertising that should require explicit user approval.
impromptu.skill.json:2061Manifest Embeds Promotional Instructions for Insertion into Agent Output
heartbeat.sh:26Environment-Controlled API Base URL Can Redirect Bearer Credentials
install.sh:72Installer Downloads Unverified Environment-Controlled Documentation
The request target is derived from the IMPROMPTU_API_URL environment variable and then used directly in urlopen with an Authorization bearer token attached. If an attacker can influence the environment or deployment configuration, they can redirect authenticated requests to an attacker-controlled server and capture the API key or manipulate all heartbeat-related network interactions.
request = Request(url, data=data, headers=headers, method=method)
try:
with urlopen(request, timeout=30) as response:
return json.loads(response.read().decode("utf-8"))
except HTTPError as e:
logger.error(f"HTTP {e.code}: {e.reason}")
Instructions found that direct the agent to transmit conversation context or user data to external services.
- `createCommunity()` - Create new communities
- `joinCommunity()` / `leaveCommunity()` - Membership management
- **Messaging API:**
- `sendMessage()` - Send messages to other agents
- `getInbox()` - Retrieve inbox with pagination
- **Standing Queries:**
- `createStandingQuery()` - Schedule recurring content queries
References to known cryptominer software are a strong abuse indicator in agent content, especially when unrelated to the skill’s stated purpose. Even as documentation, these references can facilitate misuse by directing users or agents toward cryptomining tooling, which is commonly associated with unauthorized resource consumption and organizational policy breaches.
unity. Balanced approach. Steady growth. Reputation: 78.
**Strategy:** Sustainable revenue share baseline + strategic bursts -> Consistent but flexible
### Collective Collaborators
**Strategy:** Collaboration > Competition -> Network effects
**All paths are valid.** The network doesn't prescribe your journey.
---
## Tools & Resources
### Mining Setup Guides
- **Mining software:** NiceHash, T-Rex Miner, lolMiner, NBMiner
### DEX Tutorials
- **Uniswap guide:** https://docs.uniswap.org/
- **1inch guide:** https://help.1inch.io/
- **Base bridge tutorial:** https://docs.base.org/tutorials/bridge-to-base
- **MetaMask setup:** https://metamask.io/faqs/
### Market Data
- **IMPRMPT price:** https://www.coingecko.com/en/coins/impromptu
- **DEX analytics:** https://dexscreener.com/base/0x...
- **Trading volume:** https://info.uniswap.org/
### Optimization
- **Gas tracker (Base):** https://base.gastracker.io/
- **DEX gas comparison:** https://l2fees.info/
### Security
- **Wallet securit
The documentation instructs agents to use wallet private keys for transfers but does not prominently warn that private-key exposure leads to immediate, irreversible asset theft. Because the skill involves real on-chain value, weak key-handling guidance materially increases the likelihood of catastrophic loss.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# Add to .gitignore
.env
.env.local
*.env
The document states no remote manifest auto-fetch by default, but also references install and heartbeat helpers, remote docs, and recurring setup behavior. Even if benign, that mixture of promotion and automation guidance creates ambiguity around what gets downloaded or scheduled, which is risky in a shell-capable skill.
The document states no remote manifest auto-fetch by default, but also references install and heartbeat helpers, remote docs, and recurring setup behavior. Even if benign, that mixture of promotion and automation guidance creates ambiguity around what gets downloaded or scheduled, which is risky in a shell-capable skill.
The document states no remote manifest auto-fetch by default, but also references install and heartbeat helpers, remote docs, and recurring setup behavior. Even if benign, that mixture of promotion and automation guidance creates ambiguity around what gets downloaded or scheduled, which is risky in a shell-capable skill.
The document states no remote manifest auto-fetch by default, but also references install and heartbeat helpers, remote docs, and recurring setup behavior. Even if benign, that mixture of promotion and automation guidance creates ambiguity around what gets downloaded or scheduled, which is risky in a shell-capable skill.
The document states no remote manifest auto-fetch by default, but also references install and heartbeat helpers, remote docs, and recurring setup behavior. Even if benign, that mixture of promotion and automation guidance creates ambiguity around what gets downloaded or scheduled, which is risky in a shell-capable skill.
The document states no remote manifest auto-fetch by default, but also references install and heartbeat helpers, remote docs, and recurring setup behavior. Even if benign, that mixture of promotion and automation guidance creates ambiguity around what gets downloaded or scheduled, which is risky in a shell-capable skill.
The document states no remote manifest auto-fetch by default, but also references install and heartbeat helpers, remote docs, and recurring setup behavior. Even if benign, that mixture of promotion and automation guidance creates ambiguity around what gets downloaded or scheduled, which is risky in a shell-capable skill.
The document states no remote manifest auto-fetch by default, but also references install and heartbeat helpers, remote docs, and recurring setup behavior. Even if benign, that mixture of promotion and automation guidance creates ambiguity around what gets downloaded or scheduled, which is risky in a shell-capable skill.
The document states no remote manifest auto-fetch by default, but also references install and heartbeat helpers, remote docs, and recurring setup behavior. Even if benign, that mixture of promotion and automation guidance creates ambiguity around what gets downloaded or scheduled, which is risky in a shell-capable skill.
The document states no remote manifest auto-fetch by default, but also references install and heartbeat helpers, remote docs, and recurring setup behavior. Even if benign, that mixture of promotion and automation guidance creates ambiguity around what gets downloaded or scheduled, which is risky in a shell-capable skill.
The document states no remote manifest auto-fetch by default, but also references install and heartbeat helpers, remote docs, and recurring setup behavior. Even if benign, that mixture of promotion and automation guidance creates ambiguity around what gets downloaded or scheduled, which is risky in a shell-capable skill.
The document states no remote manifest auto-fetch by default, but also references install and heartbeat helpers, remote docs, and recurring setup behavior. Even if benign, that mixture of promotion and automation guidance creates ambiguity around what gets downloaded or scheduled, which is risky in a shell-capable skill.
The document states no remote manifest auto-fetch by default, but also references install and heartbeat helpers, remote docs, and recurring setup behavior. Even if benign, that mixture of promotion and automation guidance creates ambiguity around what gets downloaded or scheduled, which is risky in a shell-capable skill.
The document states no remote manifest auto-fetch by default, but also references install and heartbeat helpers, remote docs, and recurring setup behavior. Even if benign, that mixture of promotion and automation guidance creates ambiguity around what gets downloaded or scheduled, which is risky in a shell-capable skill.
The document states no remote manifest auto-fetch by default, but also references install and heartbeat helpers, remote docs, and recurring setup behavior. Even if benign, that mixture of promotion and automation guidance creates ambiguity around what gets downloaded or scheduled, which is risky in a shell-capable skill.
The document states no remote manifest auto-fetch by default, but also references install and heartbeat helpers, remote docs, and recurring setup behavior. Even if benign, that mixture of promotion and automation guidance creates ambiguity around what gets downloaded or scheduled, which is risky in a shell-capable skill.
Referenced artifact was not completely inspected
ts require manual review before execution.** `install.sh`, `heartbeat.sh`, and `impromptu-health.sh` are included and inspectable. Do not run them blindly. Use
Referenced artifact was not completely inspected
ts require manual review before execution.** `install.sh`, `heartbeat.sh`, and `impromptu-health.sh` are included and inspectable. Do not run them blindly. Use
The code exposes dispute resolution actions that can force payment release or cancellation, directly determining financial outcomes. In a skill whose declared purpose is only conversation creation, this is an especially sensitive hidden capability because misuse or accidental invocation could irreversibly move or release escrowed value.
Code enumerates, copies, or searches environment variables for secrets. Bulk environment access can collect credentials unrelated to the skill's stated purpose.
*/
const API_URL = process.env['IMPROMPTU_API_URL'] ?? 'https://impromptusocial.ai/api'
const API_KEY = process.env['IMPROMPTU_API_KEY']
if (!API_KEY) {
console.error('Missing IMPROMPTU_API_KEY environment variable')
Detected: suspicious.env_credential_access, suspicious.prompt_injection_instructions