Back to skill

Security audit

brief-engineering

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent engineering-brief skill, but it needs review because some discovered service names are inserted directly into command and query templates that could widen searches or alter results.

Review before installing in a production workspace. Confirm the service scope carefully, avoid signal-pack or service aliases with quotes, wildcards, shell metacharacters, or query operators, and prefer a revised version that validates identifiers and builds SQL, JSON, JSM, and Slack queries with proper escaping or parameterization.

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

Error
Location
SKILL.md:91
Finding

Unescaped External Identifiers in Shell and Query Templates

Content
View full analysis
","includeOnCallSchedules":true,"includeDependsOn":true,"includeCustomFields":true}' ``` Confirmed service names are inserted into JSM alert-search syntax: ```bash twg jsm alert query --query 'status = open AND (message: ** OR message: **)' \ --limit 30 --site hello -o json --agent-fields @evidence ``` Service names are interpolated into a SQL string embedded inside shell-quoted JSON: ```bash is tools call reliability_insights_execute_socrates_query --cloud-id "$ATLASSIAN_CLOUD_ID" \ --args '{"query":"SELECT alert_id, message, priority, status, integration_name, created_utc FROM production.sre_incident.opsgenie_alerts WHERE day_of_created >= DATE_SUB(CURRENT_DATE(), 14) AND lower(message) LIKE '"'"'%%'"'"' ORDER BY created_utc DESC LIMIT 20"}' ``` Service names are also inserted into delegated Slack searches: ```bash twg rovo search " DLQ latency workflow failed production" \ --app slack --updated-since 7d --limit 50 -o json ``` The signal catalog repeats the vulnerable SQL construction: ```sql SELECT alert_id, message, priority, status, integration_name, created_utc, count FROM production.sre_incident.opsgenie_alerts WHERE day_of_created >= DATE_SUB(CURRENT_DATE(), 14) AND lower(message) LIKE '%%' ORDER BY created_utc DESC LIMIT 20 ``` It also repeats the alert-query construction ...[truncated 3717 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (7)

Env Variable Harvesting

High
Category
Data Exfiltration
Confidence
80% confidence
Finding

Code enumerates, copies, or searches environment variables for secrets. Bulk environment access can collect credentials unrelated to the skill's stated purpose.

Content

Scanner excerpt · references/local-operational-relay.md (reported line 34)May include surrounding context.

fresh local brief and publishes it. Set the job shortly before the RovoClaw brief, for example 08:15 for an 08:30 brief.

SignalFx still requires a current token in Keychain. Configure it using the local package's hidden-input flow:

bash

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · SKILL.md (reported line 536)May include surrounding context.

md
Chat: the five buckets in order, then a one-line coverage summary.

Dashboard: load `/opt/atlassian/skills/design-kit/SKILL.md` and author
`memory/engineering-brief/index.html`.

The `daily-briefing` template is a singleton reserved for `memory/daily-briefing`, so

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The invocation example 'Run my engineering brief.' is understandable, but the README does not clarify whether this is the exact trigger, one example among many, or what nearby phrases should not activate the skill. Without explicit trigger scope or exclusions, activation could be broader than intended in natural conversation.

Content

No source excerpt is available for this finding.

Scope Creep

Low
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill's behavior or capabilities extend beyond its stated purpose. Scope creep allows an agent to perform actions unrelated to its documented functionality, increasing the attack surface.

Content

Scanner excerpt · references/local-operational-relay.md (reported line 56)May include surrounding context.

md
If the field is missing, the skill may auto-discover exactly one permitted page named
`Engineering Brief — Operational Signal Relay` created by the invoking user. It must
not attach a page with a different creator or broaden scope from its contents.

## Coverage rules

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
77% confidence
Finding

The file frames the skill as strictly non-acting and bounded to per-user safe operation, yet earlier lines describe a team-level registration step whose effects propagate automatically to other users. That is not necessarily unsafe, but it contradicts the absolute phrasing that the skill does not externally act beyond confirmed drafts.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.