Back to skill

Security audit

Easy run test

Security checks for vulnerabilities and agentic risk

Overview

This API testing skill matches its stated purpose, but it installs a mutable native executable without integrity checks and lacks guardrails for load testing external targets.

Install only if you trust the basjoofan GitHub release channel and are comfortable running an unpinned native binary. Use it only against systems you own or are authorized to test, keep concurrency and duration conservative, and avoid sending production secrets, personal data, internal endpoints, or sensitive files in test requests.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T03 · Remote Payload Retrieval and Execution

Warning
Location
SKILL.md:17
Finding
Mutable Remote Binary Is Downloaded and Executed Without Integrity Verification<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 17-30 **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: Medium ### Vulnerable Code ```yaml { "id": "get-latest-version", "kind": "script", "script": 'node -e "const https = require(''https''); https.get(''https://api.github.com/repos/basjoofan/core/releases/latest'', {headers: {''User-Agent'': ''node.js''}}, (res) => {let data = ''''; res.on(''data'', chunk => data += chunk); res.on(''end'', () => {const release = JSON.parse(data); const version = release.tag_name.replace(/^v/, ''''); console.log(version);})}).on(''error'', (err) => {console.error(''Error:'', err.message); process.exit(1);});"', "env": { "VERSION": "${VERSION}", "ARCH": "${process.arch === 'arm64' ? 'aarch64' : 'x86_64'}", "OS": "${process.platform === 'darwin' ? 'apple-darwin' : process.platform === 'win32' ? 'pc-windows-msvc.exe' : 'unknown-linux-gnu'}", }, }, { "id": "download", "kind": "download", "url": "https://github.com/basjoofan/core/releases/download/v${VERSION}/basjoofan-${VERSION}-${ARCH}-${OS}", "bins": ["basjoofan"], "label": "Install basjoofan v${VERSION}", }, ``` ### Technical Analysis The installation configuration queries the GitHub API for the latest release version and then downloads a platform-specific native executable from that release. The selected version is mutable because it is determined at installation time rather than pinned to a previously audited release. The downloaded executable is not validated using a cryptographic checksum, publisher signature, or trusted manifest. Consequently, the effective code executed by the Skill can change after the Skill itself has been reviewed. HTTPS protects the download in transit but does not protect against a compromised upstream repository, stolen release credentials, a malicious release uploaded by a maintainer, or an unauthorized replacement of a release artifact. The remote ...[truncated 1645 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin installation to a specific, reviewed release version rather than dynamically resolving `latest`. 2. Publish platform-specific SHA-256 or stronger cryptographic digests through a separately protected release manifest. 3. Verify the downloaded executable against the expected digest before marking it executable or invoking it, and fail closed on any mismatch. 4. Sign release artifacts with a verifiable publisher identity, such as Sigstore/cosign or another suitable code-signing mechanism, and validate that signature during installation. 5. Pin the trusted signing identity or public key so that a newly supplied key from the same release channel cannot silently authorize a malicious artifact. 6. Restrict installation and execution to a least-privileged account or sandbox with only the filesystem and network access required for API testing. 7. Document the exact upstream repository, pinned version, expected checksums, and signature verification procedure so that the installed artifact can be independently audited. 8. Establish a controlled update process in which new releases are reviewed and their pinned version and digest are deliberately updated in the Skill. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

Vague Triggers

Medium
Confidence
93% confidence
Finding
The skill trigger scope is broad enough to activate on generic API/HTTP/performance testing requests without constraining targets, authorization, or environment. In practice, this can steer an agent to help run network tests against arbitrary systems, including third-party endpoints, which increases the risk of misuse for unauthorized scanning or load generation.

External Transmission

Medium
Category
Data Exfiltration
Content
{
              "id": "get-latest-version",
              "kind": "script",
              "script": 'node -e "const https = require(''https''); https.get(''https://api.github.com/repos/basjoofan/core/releases/latest'', {headers: {''User-Agent'': ''node.js''}}, (res) => {let data = ''''; res.on(''data'', chunk => data += chunk); res.on(''end'', () => {const release = JSON.parse(data); const version = release.tag_name.replace(/^v/, ''''); console.log(version);})}).on(''error'', (err) => {console.error(''Error:'', err.message); process.exit(1);});"',
              "env":
                {
                  "VERSION": "${VERSION}",
Confidence
77% confidence
Finding
The install process executes a script that contacts the GitHub API to dynamically discover the latest release version, creating an external network dependency during installation. While common, this introduces supply-chain and integrity risk because the downloaded version is selected at runtime and is not pinned or verified before the subsequent binary download.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The documentation instructs users to run HTTP/API tests and provides examples that send requests to external services, but it does not warn that request bodies, headers, files, and identifiers may be transmitted to external systems. This omission can lead users or agents to include secrets, personal data, or internal endpoints in tests without understanding the exposure risk.

Static analysis

No suspicious patterns detected.