Back to skill

Security audit

forge

Security checks for vulnerabilities and agentic risk

Overview

The skill is a forge-driver helper for GitHub/GitLab/Gitea workflows; it can call local forge CLIs when its resource script is used, but that behavior matches its stated purpose and is not hidden.

Install this only if you want agents to reason about or use forge-agnostic GitHub/GitLab/Gitea workflows. If the bundled shell helper is sourced, its functions can use your existing forge CLI authentication to create, edit, or merge PRs/issues, so keep those calls tied to explicit user intent and review merge/edit actions before running them.

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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

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 · adapters.md (reported line 33)May include surrounding context.

md
|-------|------------------|
| GitHub | OAuth scopes (e.g., repo, read:org, workflow) |
| GitLab | token scopes (e.g., `api`, `read_repository`) |
| Gitea | personal access token |

`auth_status()` normalizes these into `{account, scopes[], ok}` so the pipeline checks
"authenticated with sufficient scope" without knowing the forge's native scope vocabulary.

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 · resources/forge-driver.test.sh (reported line 100)May include surrounding context.

sh
assert_eq "visibility gitea boundary" "# gitea:repo_visibility boundary (tea/API — Phase 2 follow-up)" "$( FORGE_OVERRIDE=gitea repo_visibility )"

# --- auth_status → account=<login> scopes=<csv> ok=<bool> ---
auth_mock=$'  ✓ Logged in to github.com account DrumRobot (keyring)\n  - Token scopes: \'repo\', \'read:org\''
assert_eq "auth github ok" "account=DrumRobot scopes=repo,read:org ok=true" "$( MOCK_OUT="$auth_mock" FORGE_OVERRIDE=github auth_status )"
assert_eq "auth github not-logged" "account= scopes= ok=false" "$( MOCK_OUT= FORGE_OVERRIDE=github auth_status )"
glab_auth=$'  ✓ Logged in to gitlab.com as octocat (job token)'

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The manifest lists triggers such as "forge", "gitlab", and especially "MR", which are short or generic enough to overlap with common terminology or broader discussions not specifically requesting this skill. The description does not provide exclusion conditions or negative examples to clarify when these triggers should and should not activate the skill.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.