Back to skill

Security audit

github-api-push-workaround

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly coherent Git push troubleshooting guidance, but its installation instructions rely on mutable unpinned external code and global installation.

Install only after reviewing the exact source you will install. Prefer a pinned release or commit, avoid global installation unless you need it, and do not let the skill modify credentials, proxies, remotes, repository visibility, or push refs without an explicit per-action confirmation.

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:67
Finding
Unpinned Package Execution and Mutable Remote Repository Installation## Vulnerability Details **File Location**: `SKILL.md:67-73` **Vulnerability Type**: Unpinned third-party package execution and mutable remote dependency retrieval **Risk Level**: Medium ### Vulnerable Code ```bash # One-command installation using the skills CLI npx skills add zhaoxinghua09-cell/agent-skills -g # Alternatively, clone and copy the skill manually git clone https://github.com/zhaoxinghua09-cell/agent-skills.git cp -r agent-skills/skills/github-api-push-workaround ~/.workbuddy/skills/ ``` ### Technical Analysis The installation instructions execute `skills` through `npx` without specifying an exact npm package version or integrity value. Depending on the local npm environment, `npx` may download and execute the package version currently resolved from the configured registry. The effective executable is therefore not fixed to the content reviewed in this audit. The alternative procedure clones the mutable default branch of a remote GitHub repository rather than a reviewed commit hash or signed release. It also retrieves the entire `agent-skills` repository, even though this audit covered only the four files in the submitted artifact. The resulting installation may consequently differ from the audited package. The `-g` option requests global skill installation. This broadens the effect of compromised content because installed skills may remain available to multiple future agent sessions. The `git clone` command alone does not execute repository code, but later loading or invoking copied skill content can expose the agent to any instructions or scripts introduced into the mutable repository. ### Attack Path 1. An attacker compromises the npm package, its publisher account, the configured package registry, or the referenced GitHub repository. 2. The attacker publishes or commits modified package code, skill instructions, or executable scripts. 3. A user follows the documented installation procedure. 4. ...[truncated 1171 chars]
Remediation
## Remediation Suggestions 1. Pin the npm CLI to an exact reviewed version, for example `npx --yes skills@X.Y.Z ...`, and document the expected package integrity hash. 2. Pin the repository to a reviewed commit hash rather than cloning and using the mutable default branch. 3. Prefer a signed release archive with a published SHA-256 checksum or another verifiable integrity mechanism. 4. Install only the required skill directory instead of retrieving and installing the complete remote skill collection. 5. Avoid global installation by default. Use a project-scoped or isolated skill directory and require explicit user approval before broader installation. 6. Review the resolved npm package and repository contents before execution or activation, including lifecycle scripts and any skill scripts. 7. Keep the packaged artifact self-contained so installation does not silently expand the trusted codebase beyond the files that were audited.
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 (4)

Vague Triggers

Medium
Confidence
94% confidence
Finding
The description includes broad trigger phrases such as '推 GitHub', 'git push 失败/401/超时', and '令牌失效了', which can cause the skill to activate in many loosely related contexts. Over-broad activation can lead an agent to apply credential-handling or repository-publishing guidance when it is not appropriate, increasing the chance of unintended network, repo, or secret-related actions.

Vague Triggers

Medium
Confidence
93% confidence
Finding
The body repeats vague invocation guidance ('读取本 SKILL.md,按…落地') without strong activation boundaries or safety gates. In practice, this can encourage an agent to treat the document as generally applicable operational guidance and proceed too eagerly in situations involving tokens, remotes, proxies, or publication flows. The surrounding skill context makes this more sensitive because the topic directly touches authentication and remote code hosting operations.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding
The skill recommends running `npx skills add ...` without pinning an exact package version. That allows whatever version is current at execution time to run, which creates a supply-chain risk if the package is updated maliciously, compromised, or changed incompatibly. In a security-sensitive skill that discusses credentials and remote publishing, this increases exposure because users may execute installation commands with broad local access.

Natural-Language Policy Violations

Low
Confidence
89% confidence
Finding
The manifest sets the category to a Chinese term ("开发效率") but provides no indication that the skill is intended for Chinese-language users only or that language is user-selectable. This can conflict with language/locale policy expectations when a skill implicitly forces a locale without opt-in or justification.

Static analysis

No suspicious patterns detected.