T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:251- Finding
Automation guidance bypasses PIN authorization for destructive operations
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 88–96 and 251–256
Vulnerability Type: Destructive-operation authorization bypass
Risk Level: MediumVulnerable instructions:
bash expflow pin clear [--force] # Remove PIN expflow run cancel <id> # Interactive PIN prompt expflow run cancel <id> --force # Skip PINmarkdown ### 3. `--force` Flag for Script Calls Always provide `--force` / `-f` on PIN-guarded commands for CI/automation. ### 4. Interactive `getpass` vs Non-Interactive `getpass.getpass()` works in terminals but fails in piped commands, CI, or subagent calls. Always provide `--pin` or `--force` as alternative paths.Technical Analysis
The Skill presents its four-digit PIN as protection for destructive operations such as canceling experiments and clearing PIN protection. However, it documents a
--forceoption that skips the PIN and then explicitly instructs automated callers to always use that bypass.The relevant security boundary is the human/PIN authorization gate. In an interactive workflow, knowledge of the PIN is expected to authorize a destructive action. Under the documented automation workflow, the agent can cross that boundary merely by adding a public command-line flag. No equivalent authorization credential, mandatory confirmation parameter, dry-run requirement, or narrowly scoped automation policy is documented.
This is high-risk behavior rather than evidence of malicious intent: the bypass appears intended to support non-interactive execution, but it makes the advertised PIN control ineffective precisely in agent, CI, and subagent environments.
Attack Path
- An agent or automated workflow receives a request that results in a PIN-protected destructive command, such as canceling an experiment or clearing PIN protection.
- The workflow follows the Skill instruction to “always provide”
--forceor-f. - The C ...[truncated 1135 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove the instruction to automatically append
--forceto PIN-protected commands. - Require explicit, operation-specific user confirmation before an agent invokes any destructive command.
- Replace the unauthenticated bypass with a separately provisioned automation credential that is narrowly scoped to approved actions, resources, and environments.
- Make destructive automation fail closed when neither a valid PIN nor an approved automation credential is supplied.
- Do not permit PIN removal through
--forcealone; require current-PIN verification or a secure administrative recovery process. - Provide a non-destructive dry-run mode so automation can display the exact target and planned action before authorization.
- Record the authenticated principal, target, action, and authorization method in an audit log.
- Remove the instruction to automatically append
