Back to skill

Security audit

Checkly CLI Skills

Security checks for vulnerabilities and agentic risk

Overview

The skill is a disclosed Checkly CLI documentation and workflow pack, with expected Checkly credentials and cloud-changing commands called out rather than hidden.

Install only if you intend to let an agent help with Checkly CLI workflows. Use a least-privilege Checkly API key/account, review previews and dry-runs before approving deploy, destroy, import commit/cancel, check delete/run, or member changes, and consider pinning the Checkly CLI version in CI instead of relying on floating npx/npm resolution.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • 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
  • Rogue AgentSelf-Modification, Session Persistence
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (396)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The manifest describes the skill primarily as a reference/router, but the body includes instructions for real testing, deployment, imports, deletion-adjacent workflows, and live-account operations. That mismatch can cause an orchestrator or user to grant the skill broader trust or lower scrutiny than warranted, leading to unexpected state-changing actions in production.

Content

No source excerpt is available for this finding.

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · VERSION (reported line 35)May include surrounding context.

text
- Expanded `bundle.packages.embed` guidance for ordered `!` exclusions, `**` cross-scope wildcards, automatic bundle lockfile pruning (including pnpm `patchedDependencies` filtering), Yarn Berry/Bun support, and pnpm `auth.ini` credentials.
  - Added `bundle.packages.prune` guidance for dependency-class and workspace-member `remove`/`keep` rules, including lockfile-consistency and runtime-safety constraints.
  - Added `runner.registries` routing for runner-only registry overrides with typed upstreams, first-match package rules, mandatory catch-all routing, and environment-reference-only bearer credentials.
  - The `.npmrc` trailing-slash auth-key fix (#1448), bare `.` / `..` import resolution, and concurrent cache-write fixes required no separate workflow guidance.
- checkly-cli v8.22.0
  - Reviewed upstream release `8.22.0`, compare `8.21.0...8.22.0`, tag `98f1c46`, and relevant source for `bundle.packages.embed` plus `CHECKLY_MQTT_URL` on 2026-08-21.
  - Added Playwright Check Suite guidance for embedding private-registry package tarballs with top-level `bundle.packages.embed`, including exact package specs, wildcard matching, lockfile eligibility, integrity checking, cache behavior, and runner dependency-cache implications.

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · VERSION (reported line 72)May include surrounding context.

text
- Expanded `bundle.packages.embed` guidance for ordered `!` exclusions, `**` cross-scope wildcards, automatic bundle lockfile pruning (including pnpm `patchedDependencies` filtering), Yarn Berry/Bun support, and pnpm `auth.ini` credentials.
  - Added `bundle.packages.prune` guidance for dependency-class and workspace-member `remove`/`keep` rules, including lockfile-consistency and runtime-safety constraints.
  - Added `runner.registries` routing for runner-only registry overrides with typed upstreams, first-match package rules, mandatory catch-all routing, and environment-reference-only bearer credentials.
  - The `.npmrc` trailing-slash auth-key fix (#1448), bare `.` / `..` import resolution, and concurrent cache-write fixes required no separate workflow guidance.
- checkly-cli v8.22.0
  - Reviewed upstream release `8.22.0`, compare `8.21.0...8.22.0`, tag `98f1c46`, and relevant source for `bundle.packages.embed` plus `CHECKLY_MQTT_URL` on 2026-08-21.
  - Added Playwright Check Suite guidance for embedding private-registry package tarballs with top-level `bundle.packages.embed`, including exact package specs, wildcard matching, lockfile eligibility, integrity checking, cache behavior, and runner dependency-cache implications.

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · checkly-config/SKILL.md (reported line 71)May include surrounding context.

md
- Expanded `bundle.packages.embed` guidance for ordered `!` exclusions, `**` cross-scope wildcards, automatic bundle lockfile pruning (including pnpm `patchedDependencies` filtering), Yarn Berry/Bun support, and pnpm `auth.ini` credentials.
  - Added `bundle.packages.prune` guidance for dependency-class and workspace-member `remove`/`keep` rules, including lockfile-consistency and runtime-safety constraints.
  - Added `runner.registries` routing for runner-only registry overrides with typed upstreams, first-match package rules, mandatory catch-all routing, and environment-reference-only bearer credentials.
  - The `.npmrc` trailing-slash auth-key fix (#1448), bare `.` / `..` import resolution, and concurrent cache-write fixes required no separate workflow guidance.
- checkly-cli v8.22.0
  - Reviewed upstream release `8.22.0`, compare `8.21.0...8.22.0`, tag `98f1c46`, and relevant source for `bundle.packages.embed` plus `CHECKLY_MQTT_URL` on 2026-08-21.
  - Added Playwright Check Suite guidance for embedding private-registry package tarballs with top-level `bundle.packages.embed`, including exact package specs, wildcard matching, lockfile eligibility, integrity checking, cache behavior, and runner dependency-cache implications.

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · checkly-playwright/SKILL.md (reported line 106)May include surrounding context.

md
- Expanded `bundle.packages.embed` guidance for ordered `!` exclusions, `**` cross-scope wildcards, automatic bundle lockfile pruning (including pnpm `patchedDependencies` filtering), Yarn Berry/Bun support, and pnpm `auth.ini` credentials.
  - Added `bundle.packages.prune` guidance for dependency-class and workspace-member `remove`/`keep` rules, including lockfile-consistency and runtime-safety constraints.
  - Added `runner.registries` routing for runner-only registry overrides with typed upstreams, first-match package rules, mandatory catch-all routing, and environment-reference-only bearer credentials.
  - The `.npmrc` trailing-slash auth-key fix (#1448), bare `.` / `..` import resolution, and concurrent cache-write fixes required no separate workflow guidance.
- checkly-cli v8.22.0
  - Reviewed upstream release `8.22.0`, compare `8.21.0...8.22.0`, tag `98f1c46`, and relevant source for `bundle.packages.embed` plus `CHECKLY_MQTT_URL` on 2026-08-21.
  - Added Playwright Check Suite guidance for embedding private-registry package tarballs with top-level `bundle.packages.embed`, including exact package specs, wildcard matching, lockfile eligibility, integrity checking, cache behavior, and runner dependency-cache implications.

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · checkly-playwright/SKILL.md (reported line 113)May include surrounding context.

md
- Expanded `bundle.packages.embed` guidance for ordered `!` exclusions, `**` cross-scope wildcards, automatic bundle lockfile pruning (including pnpm `patchedDependencies` filtering), Yarn Berry/Bun support, and pnpm `auth.ini` credentials.
  - Added `bundle.packages.prune` guidance for dependency-class and workspace-member `remove`/`keep` rules, including lockfile-consistency and runtime-safety constraints.
  - Added `runner.registries` routing for runner-only registry overrides with typed upstreams, first-match package rules, mandatory catch-all routing, and environment-reference-only bearer credentials.
  - The `.npmrc` trailing-slash auth-key fix (#1448), bare `.` / `..` import resolution, and concurrent cache-write fixes required no separate workflow guidance.
- checkly-cli v8.22.0
  - Reviewed upstream release `8.22.0`, compare `8.21.0...8.22.0`, tag `98f1c46`, and relevant source for `bundle.packages.embed` plus `CHECKLY_MQTT_URL` on 2026-08-21.
  - Added Playwright Check Suite guidance for embedding private-registry package tarballs with top-level `bundle.packages.embed`, including exact package specs, wildcard matching, lockfile eligibility, integrity checking, cache behavior, and runner dependency-cache implications.

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · checkly-playwright/SKILL.md (reported line 193)May include surrounding context.

md
- Expanded `bundle.packages.embed` guidance for ordered `!` exclusions, `**` cross-scope wildcards, automatic bundle lockfile pruning (including pnpm `patchedDependencies` filtering), Yarn Berry/Bun support, and pnpm `auth.ini` credentials.
  - Added `bundle.packages.prune` guidance for dependency-class and workspace-member `remove`/`keep` rules, including lockfile-consistency and runtime-safety constraints.
  - Added `runner.registries` routing for runner-only registry overrides with typed upstreams, first-match package rules, mandatory catch-all routing, and environment-reference-only bearer credentials.
  - The `.npmrc` trailing-slash auth-key fix (#1448), bare `.` / `..` import resolution, and concurrent cache-write fixes required no separate workflow guidance.
- checkly-cli v8.22.0
  - Reviewed upstream release `8.22.0`, compare `8.21.0...8.22.0`, tag `98f1c46`, and relevant source for `bundle.packages.embed` plus `CHECKLY_MQTT_URL` on 2026-08-21.
  - Added Playwright Check Suite guidance for embedding private-registry package tarballs with top-level `bundle.packages.embed`, including exact package specs, wildcard matching, lockfile eligibility, integrity checking, cache behavior, and runner dependency-cache implications.

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · checkly-checks/SKILL.md (reported line 94)May include surrounding context.

typescript
// Note: API_TOKEN is a user-defined environment variable for YOUR API checks.
// It is NOT required by Checkly CLI itself. Define it in your .env or CI secrets
// based on your application's authentication needs.

new ApiCheck('authenticated-api-check', {

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · checkly-checks/SKILL.md (reported line 254)May include surrounding context.

typescript
// Note: API_TOKEN is a user-defined environment variable for YOUR API checks.
// It is NOT required by Checkly CLI itself. Define it in your .env or CI secrets
// based on your application's authentication needs.

new ApiCheck('authenticated-api-check', {

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · checkly-test/SKILL.md (reported line 218)May include surrounding context.

typescript
// Note: API_TOKEN is a user-defined environment variable for YOUR API checks.
// It is NOT required by Checkly CLI itself. Define it in your .env or CI secrets
// based on your application's authentication needs.

new ApiCheck('authenticated-api-check', {

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · references/best-practices.md (reported line 180)May include surrounding context.

typescript
// Note: API_TOKEN is a user-defined environment variable for YOUR API checks.
// It is NOT required by Checkly CLI itself. Define it in your .env or CI secrets
// based on your application's authentication needs.

new ApiCheck('authenticated-api-check', {

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · references/troubleshooting.md (reported line 176)May include surrounding context.

typescript
// Note: API_TOKEN is a user-defined environment variable for YOUR API checks.
// It is NOT required by Checkly CLI itself. Define it in your .env or CI secrets
// based on your application's authentication needs.

new ApiCheck('authenticated-api-check', {

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · references/best-practices.md (reported line 82)May include surrounding context.

Local Development:

bash
# .env.local (add to .gitignore)
# Example variables for YOUR checks - NOT required by Checkly CLI itself
API_TOKEN=dev-token-123          # Example: if your API check needs auth
TEST_EMAIL=test@example.com      # Example: if your browser check tests login

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · references/best-practices.md (reported line 181)May include surrounding context.

Local Development:

bash
# .env.local (add to .gitignore)
# Example variables for YOUR checks - NOT required by Checkly CLI itself
API_TOKEN=dev-token-123          # Example: if your API check needs auth
TEST_EMAIL=test@example.com      # Example: if your browser check tests login

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill declares required binaries and environment variables but does not define any explicit tool scope such as allowed-tools or permissions. In an agent setting, that can let the runtime infer or grant broader shell/env access than users expect, increasing the chance of unintended command execution or secret exposure.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

MCP server references in the skill manifest without version pinning are a rug-pull risk.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

MCP server references in the skill manifest without version pinning are a rug-pull risk.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

Referencing npx checkly without pinning a version allows the agent to fetch and execute whatever package version is current at runtime. That creates a supply-chain risk: a compromised upstream release or unexpected breaking change could alter behavior, execute malicious code, or bypass reviewed safety expectations.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

Referencing npx checkly without pinning a version allows the agent to fetch and execute whatever package version is current at runtime. That creates a supply-chain risk: a compromised upstream release or unexpected breaking change could alter behavior, execute malicious code, or bypass reviewed safety expectations.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

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

md
"kind": "node",
              "package": "checkly",
              "bins": ["checkly"],
              "label": "Create Checkly project (npm)",
              "command": "npm create checkly@latest",
            },
            {

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

This line instructs use of unpinned npx checkly, which may download and execute an unreviewed package version at runtime. In an agent workflow, that turns documentation into an implicit remote-code execution path controlled by the package registry state.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

This unversioned npx checkly invocation carries supply-chain execution risk because package contents are resolved dynamically. An attacker controlling or poisoning the package or its dependencies could execute arbitrary code in the agent environment.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The skill instructs an unpinned npx checkly command, which can fetch different code over time. That undermines reproducibility and opens a direct package-registry supply-chain path to code execution.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

Using floating npx checkly means the actual executed code is not fixed at authoring time. In an agent context, this is dangerous because the skill can cause remote package retrieval and execution with user credentials or repository access present.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

An unpinned npx checkly command can resolve to any current release, including a malicious or incompatible one. That creates a time-of-use code execution risk not covered by static review of this skill file.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.