Skip to content

security-issue-import: create the tracker via vetted-op issue-create, not raw gh api (agent-guard blocks it) #1979

Closed

Description

@potiuk

What

security-issue-import Step 7 (apply) creates the tracker with a raw gh api / gh issue create, passing the report body as the issue body. With the framework's own magpie-agent-guard installed, that call is refused: the body carries CVE / vulnerability / advisory / security@ terms, which the guard blocks on any gh api command — even against a private tracker repository. So the documented create path is unusable for exactly the content the skill always handles.

The vetted-op issue-create already exists and runs outside the guard (the same way rollup-append does), but the import skill's apply step does not use it.

Repro

Run security-issue-import on a real report in a setup with magpie-agent-guard installed. Step 7's create is refused with:

Apache Magpie Security Guard: Blocked public-surface command (gh api).
Found forbidden security disclosure term(s): `CVE`, `vulnerability`, `advisory`, `security@`.

Observed on an adopter (private tracker repo, agent-guard on) while importing new security@ reports.

Why it matters

The agent-guard is a framework component, so any adopter that installs it hits this. The create is against a private tracker, so confidentiality is not the issue — the guard simply cannot distinguish the private tracker from the public upstream and blocks on the disclosure terms every security report contains. The result is that the first, load-bearing step of the on-ramp skill cannot run through its documented path.

Proposal

  • Have security-issue-import create the tracker through the vetted-op issue-create path (which runs outside the guard, as rollup-append already does), instead of raw gh api / gh issue create.
  • Document that the security-issue-import caller needs the issue-create vetted op (alongside rollup-append) in the caller-grant guidance.

This keeps confidentiality intact (the tracker stays private) while not tripping the guard. security-issue-import-from-pr and -from-md, which also create trackers, likely need the same treatment — worth checking in the same change.

Activity

  1. added
    bugSomething isn't working
    capability:intakeImport external signal + sync tracker state
    on Nov 4, 2026
  2. KatalKavya96 commented on Nov 4, 2026

    @KatalKavya96
    Contributor

    @potiuk , I've submitted a PR addressing this issue.

    The fix replaces raw GitHub tracker creation with a policy-scoped vetted operation across all three security import skills, preserving label handling, project-board integration, and non-GitHub compatibility.

    Regression tests and repository checks are passing.
    Thanks!

  3. added
    family:docsDocs, MISSION.md, READMEs
    capability:platformFramework / agent substrate skills (install, verify, doctor, override, status, setup bootstrap)
    substrate:sandboxTool substrate: agent isolation, egress control, settings audit
    substrate:framework-devTool substrate: build / validate / eval the framework itself
    on Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingcapability:intakeImport external signal + sync tracker statecapability:platformFramework / agent substrate skills (install, verify, doctor, override, status, setup bootstrap)family:docsDocs, MISSION.md, READMEsfamily:securitysecurity-* skillsfamily:setupsetup-* skillsfamily:toolstools/*substrate:framework-devTool substrate: build / validate / eval the framework itselfsubstrate:sandboxTool substrate: agent isolation, egress control, settings audit

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions