Back to skill

Security audit

Sentry Error Triage

Security checks for vulnerabilities and agentic risk

Overview

This Sentry skill is coherent, but it needs review because it can change live issue state without an explicit confirmation gate.

Install only if you want an agent to access Sentry data and potentially change issue/release state. Use a least-privileged token, verify the CLI package source, and require explicit human approval before any resolve, ignore, assign, release/deploy, source-map upload, or bulk-update command.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:14
Finding

Unverified Alternative PyPI Package Installation

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 14–17; the same package is also declared in installation metadata at line 4.
Vulnerability Type: Unverified third-party dependency and supply-chain risk
Risk Level: Medium

Vulnerable Code

bash
# Install
npm i -g @sentry/cli
# — or —
pip install sentry-cli

The installation metadata also declares the package:

yaml
metadata: {"openclaw":{"requires":{"bins":["sentry-cli"]},"install":[{"id":"npm","kind":"npm","package":"@sentry/cli","global":true,"bins":["sentry-cli"],"label":"Install sentry-cli (npm)"},{"id":"pip","kind":"pip","package":"sentry-cli","bins":["sentry-cli"],"label":"Install sentry-cli (pip)"}]}}

Technical Analysis

The Skill presents the scoped npm package @sentry/cli and the separately named PyPI package sentry-cli as interchangeable installation options. The documentation does not establish that the PyPI package is an official Sentry distribution, nor does it pin a trusted version or verify a checksum or digital signature.

Package installation can execute package-controlled build or installation logic and installs executables that are later trusted as sentry-cli. Consequently, an unrelated, compromised, or substituted package obtained under the PyPI name could introduce attacker-controlled code into the local environment. This creates a dependency-confusion, package-substitution, or repository-compromise exposure.

Attack Path

  1. A user or agent follows the documented pip install sentry-cli alternative.
  2. pip resolves and downloads mutable package content associated with that package name from its configured index.
  3. Package-controlled installation or build logic may execute with the installing user's privileges, and the installed sentry-cli executable becomes trusted by subsequent workflow steps.
  4. The user configures or already possesses SENTRY_AUTH_TOKEN, SENTRY_ORG, and SENTRY_PROJECT environment variables.
  5. A malicious pac ...[truncated 974 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove the pip install sentry-cli option unless the package's official ownership and provenance can be conclusively verified against Sentry-maintained documentation.
  2. Prefer an official Sentry distribution channel, such as the scoped npm package or an authenticated official binary release.
  3. Pin the dependency to a reviewed exact version rather than installing an unconstrained latest release.
  4. Verify downloaded artifacts using publisher-provided cryptographic signatures or trusted checksums.
  5. Lock dependencies in a reproducible manifest and review version changes before deployment.
  6. Perform installation in an isolated, least-privileged environment without Sentry tokens or unrelated credentials present.
  7. Provide credentials only after installation and integrity verification, and scope the Sentry token to the minimum permissions required.
  8. If Python installation remains supported, document the verified publisher, package URL, exact version, expected hashes, and a hash-enforced installation command.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (2)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill includes commands that change incident state in Sentry, including resolving, ignoring, assigning, and bulk-resolving issues, but it does not prominently warn that these are mutating actions. In an agent skill context, that omission is risky because an automated agent may execute these commands during triage and accidentally suppress or alter active incidents, degrading operational visibility and auditability.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

bash
# Resolve
curl -s "https://sentry.io/api/0/issues/$ISSUE_ID/" \
  -H "Authorization: Bearer $SENTRY_AUTH_TOKEN" \
  -X PUT -H "Content-Type: application/json" \
  -d '{"status": "resolved"}'