Back to skill

Security audit

War Intelligence Monitor

Security checks for vulnerabilities and agentic risk

Overview

The skill has a coherent emergency-monitoring purpose, but it asks for highly sensitive location and safety data and directs persistent automated alerts without enough user-control or privacy guidance.

Review carefully before installing. Use only coarse location data where possible, keep the config out of synced folders and repositories, restrict file permissions, avoid storing shelter details or contact numbers unless needed, and do not enable cron jobs or external alerts until you have reviewed the exact schedule, command, recipients, payload contents, and removal steps.

Vulnerability Patterns
  • System PersistenceInstalls backdoors, hooks, services, or scheduled tasks that survive the run
  • 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
Findings (2)

T06 · System Persistence

Error
Location
SKILL.md:38
Finding
Persistent Cross-Session Monitoring Through Scheduled Cron Jobs## Vulnerability Details **File Location**: `SKILL.md:38-63`; `references/setup-guide.md:32-42` **Vulnerability Type**: Cross-session scheduled-task persistence **Risk Level**: High ### Evidence `SKILL.md:38-63`: ```text ### 1. Set Up Cron Jobs Create two monitoring jobs: **Urgent Monitoring (every 30 min)** ``` ```text Execute war intel monitoring: 1. Search latest news: [conflict keywords] 2. Check for red alert keywords (airspace closed, missile launch, air raid, explosion) 3. If emergency detected, send alert immediately 4. Include distance from user location for each target mentioned Alert format: 🚨 [RED ALERT] {event} 📍 Distance from you: ~{X}km ⚡ Immediate actions: {actions} 📊 Next 24-72h forecast: {prediction} ``` ```text **Daily Briefing (3x daily)** ``` ```text Generate daily briefing: 1. Search past 6 hours news 2. Check airspace status 3. Query flight prices and availability to evacuation target 4. Provide risk assessment and recommendations ``` `references/setup-guide.md:32-42`: ```text ## Step 3: Set Up Monitoring Ask the agent to create cron jobs: ``` ```text Set up war intel monitoring for me: - Read my config from war-intel-config.json - Create urgent monitoring cron (every 30 min) - Create daily briefing cron (3x daily at 8am, 2pm, 8pm) - Send alerts to [Discord/Telegram/etc.] ``` ```text ``` ### Technical Analysis The Skill explicitly directs an Agent to create recurring cron jobs. These jobs are designed to continue executing after the initiating interaction has ended, giving the Skill cross-session persistence through the host scheduler. The documentation does not require the Agent to: - Display the complete scheduled command before installation. - Obtain separate confirmation immediately before creating each job. - Set an expiration time or execution limit. - Constrain the job to a dedicated low-privilege environment. ...[truncated 1694 chars]
Remediation
## Remediation Suggestions 1. Require explicit, informed confirmation immediately before installing each scheduled task. 2. Show the exact schedule, command, working directory, data sources, output destination, and account identity before installation. 3. Give every job a default expiration date or bounded execution count. 4. Run monitoring under a dedicated least-privilege account or sandbox with access only to the required configuration. 5. Do not place secrets, coordinates, contact details, or messaging credentials directly in cron command lines. 6. Maintain an auditable job identifier and document commands for listing, pausing, and deleting the job. 7. Provide a nonpersistent foreground mode as the default; make cron installation an optional advanced feature. 8. Require separate approval before enabling any external alert destination. 9. Record only minimal operational metadata, and prevent sensitive alert contents from entering scheduler or system logs.

T09 · Insecure Skill Coding Practices

Warning
Location
references/config-template.json:2
Finding
Plaintext Storage and Potential External Disclosure of Sensitive Safety Data## Vulnerability Details **File Location**: `SKILL.md:11-34`; `references/config-template.json:2-39`; `references/setup-guide.md:9-15,32-42` **Vulnerability Type**: Insecure handling of precise location, shelter, evacuation, and contact data **Risk Level**: Medium ### Evidence `SKILL.md:11-34`: ```json { "user_location": { "name": "Your Location Name", "coordinates": [latitude, longitude], "shelter_primary": "Nearest shelter location", "shelter_secondary": "Backup shelter location" }, "evacuation_target": "Target city/country", "known_targets": [ {"name": "Military Base A", "distance_km": 20, "type": "military"}, {"name": "Airport", "distance_km": 15, "type": "infrastructure"}, {"name": "Port", "distance_km": 25, "type": "infrastructure"} ], "emergency_contacts": { "police": "emergency number", "ambulance": "emergency number", "embassy": "embassy number" } } ``` `references/config-template.json:2-39`: ```json "user_location": { "name": "Your City, District", "coordinates": [0.0, 0.0], "shelter_primary": "Building basement / underground parking", "shelter_secondary": "Nearby mall basement or metro station" }, "evacuation_target": "Home Country/City", "housing_risks": [ "Large windows", "High floor", "Near military facility" ], "known_targets": [ { "name": "Example Military Base", "distance_km": 20, "type": "military", "notes": "Air force base, potential high-value target" }, { "name": "International Airport", "distance_km": 15, "type": "infrastructure", "notes": "May close during conflict" }, { "name": "Major Port", "distance_km": 25, "type": "infrastructure", "notes": "Strategic shipping facility" } ], "emergency_contacts": { "local_police": "911", "local_ambulance": "911", "embassy_hotline": "+1-xxx ...[truncated 3521 chars]
Remediation
## Remediation Suggestions 1. Collect only the minimum location precision required for useful alerts; prefer a city, district, or coarse geofence over a home address and exact coordinates. 2. Separate contact credentials and sensitive personal data from the general monitoring configuration. 3. Store sensitive values in an operating-system secret store or another protected configuration mechanism rather than ordinary plaintext JSON. 4. If a local file is unavoidable, create it with owner-only permissions and verify those permissions before reading it. 5. Define an explicit outbound allowlist and require user confirmation of the destination before sending the first alert. 6. Redact exact coordinates, shelter names, home addresses, phone numbers, and evacuation details from outbound messages by default. 7. Keep sensitive values out of command-line arguments, cron definitions, prompts retained by providers, and application logs. 8. Display the exact outbound payload for approval during setup and provide a safe test using synthetic data. 9. Document retention, deletion, backup, and incident-response procedures for the configuration and generated alerts. 10. Use separate identifiers for nearby targets rather than storing unnecessary military-site details alongside the user's precise location.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The skill directs users to place highly sensitive data in a plain `config.json`, including precise location, shelter locations, evacuation plans, and emergency contacts, but provides no privacy, storage, or access-control guidance. In the context of a wartime monitoring skill, this information is unusually sensitive because local file exposure, backups, logs, or repo commits could reveal a user's whereabouts and emergency procedures to unauthorized parties.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The guide tells the user to store highly sensitive data such as home address, coordinates, nearby shelters, evacuation target, nearby military-related sites, and emergency contacts in a local config file, then have the agent read it, without any privacy warning or minimization guidance. In the context of a war-intelligence skill, this information is exceptionally sensitive because exposure could reveal the user's location, movement plans, and proximity to strategic targets.

Intent-Code Divergence

Medium
Confidence
93% confidence
Finding
The setup guide explicitly instructs the agent to create recurring cron jobs and send alerts to external services, which introduces persistent system-side effects and outbound communications beyond simple informational briefings. In a skill handling wartime monitoring and sensitive user context, this can cause unauthorized automation, unintended data disclosure, and actions the user may not fully understand or review.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The instructions promote recurring automation and outbound alerting but do not warn that this creates persistent tasks on the user's system and may continuously send potentially sensitive conflict-related or location-derived information to third-party services. That lack of transparency is risky because users may not appreciate the ongoing operational and privacy impact after initial setup.

Static analysis

No suspicious patterns detected.