Back to skill

Security audit

Co2 Tank Monitor

Security checks for vulnerabilities and agentic risk

Overview

The skill is a disclosed CO2 tank monitoring helper with some reliability and overbroad permission caveats, but no hidden, destructive, or data-stealing behavior was found.

Install only if you understand this is a lightweight monitoring aid, not a validated safety system. Scope any cron jobs, sensor-log reads, and alert integrations yourself; avoid granting unnecessary Write/Edit access where your platform allows narrower permissions; and validate pressure, consumption, and capacity assumptions before relying on reports for real lab operations.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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 (3)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/main.py:27
Finding

Unvalidated Numeric Inputs Can Crash or Disable Automated Monitoring

Content
View full analysis
float: """Calculate remaining days""" if daily_consumption <= 0: return float('inf') return pressure / daily_consumption def calculate_depletion_time(remaining_days: float) -> datetime: """Calculate estimated depletion time""" return get_current_time() + timedelta(days=remaining_days) ``` The command-line arguments are parsed as unrestricted floating-point values: ```python parser.add_argument( "--pressure", "-p", type=float, default=8.0, help="Current tank pressure (MPa), default 8.0" ) parser.add_argument( "--daily-consumption", "-d", type=float, default=1.5, help="Daily consumption rate (MPa/day), default 1.5" ) parser.add_argument( "--alert-days", "-a", type=int, default=2, help="Alert threshold in days, default 2" ) ``` ### Technical Analysis The program does not verify that pressure and consumption values are finite, positive, and within physically reasonable limits. Python's `float()` parser accepts special values such as `nan`, `inf`, and `-inf`. A zero or negative consumption value is converted to positive infinity by `calculate_remaining_days()`. That value is then passed to `timedelta(days=remaining_days)`, which can raise `OverflowError` or another arithmetic conversion exception. Non-finite or excessively large pressure values can produce the same result. Negative pressure and negative alert thresholds are also accepted, potentially producing misleading status calculations rather than a sensor-data validation failure. No exception handler converts these failures into an explicit monitoring-error alert. ### Att ...[truncated 1252 chars]
Remediation
View remediation
None: if not math.isfinite(pressure) or pressure < 0 or pressure > 20: raise ValueError("Pressure must be finite and between 0 and 20 MPa") if not math.isfinite(daily_consumption) or daily_consumption <= 0: raise ValueError("Daily consumption must be finite and greater than zero") if alert_days < 0 or alert_days > 30: raise ValueError("Alert threshold must be between 0 and 30 days") ``` ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/main.py:164
Finding

Cylinder Capacity Is Accepted and Reported but Ignored by the Prediction Model

Content
View full analysis
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Note
Location
SKILL.md:4
Finding

Declared Tool Permissions Exceed the Skill's Functional Requirements

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (3)

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
85% confidence
Finding

The documented behavior includes cron-based automation, log-file reads, and execution flows using external sensor data, which materially exceed the manifest description of an IoT monitoring simulation. This scope mismatch is risky because users may grant tools and deploy the skill in more privileged operational contexts than expected, enabling unintended file access, scheduled execution, and integration into production workflows without appropriate review.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The documentation explicitly shows operational automation via subprocess execution and external alert hooks such as send_urgent_alert() and send_notification(). Even though this is presented as example code, it expands the skill from passive monitoring/simulation into active orchestration, which can trigger unintended actions or be reused unsafely in environments where sensor input, paths, or alert integrations are not tightly controlled.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The markdown includes natural-language labels '上游' and '下游' alongside English terms. Because the skill otherwise appears to target general users and does not state any locale requirement or provide an explicit language preference mechanism, this can conflict with a language/locale policy requiring user opt-in.

Content

No source excerpt is available for this finding.