T09 · Insecure Skill Coding Practices
- Location
scripts/governance.ts:128- Finding
Caller-Supplied Verdicts Can Bypass the Promotion Authorization Check
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is not visibly malicious, but its governance claims are weakened by an approval-bypass path and it stores full action details in a persistent plaintext audit log.
Review before installing. Use the full pipeline only, avoid relying on the standalone promote command until verdicts are authenticated or kept internal, and assume the witness log may contain sensitive prompts, paths, and tool parameters. If used, restrict filesystem permissions on ~/.openclaw/governance and avoid passing secrets through governed action parameters.
scripts/governance.ts:128Caller-Supplied Verdicts Can Bypass the Promotion Authorization Check
scripts/witness.ts:132Complete Action Parameters and User Instructions Are Persisted in Plaintext
Append-only witness logging and hash-chain verification can improve auditability, but they do not substitute for preventative authorization controls. If presented as evidence of governance enforcement, they may create a false sense of security while only detecting or recording actions after the fact.
Append-only witness logging and hash-chain verification can improve auditability, but they do not substitute for preventative authorization controls. If presented as evidence of governance enforcement, they may create a false sense of security while only detecting or recording actions after the fact.
Append-only witness logging and hash-chain verification can improve auditability, but they do not substitute for preventative authorization controls. If presented as evidence of governance enforcement, they may create a false sense of security while only detecting or recording actions after the fact.
Append-only witness logging and hash-chain verification can improve auditability, but they do not substitute for preventative authorization controls. If presented as evidence of governance enforcement, they may create a false sense of security while only detecting or recording actions after the fact.
Append-only witness logging and hash-chain verification can improve auditability, but they do not substitute for preventative authorization controls. If presented as evidence of governance enforcement, they may create a false sense of security while only detecting or recording actions after the fact.
Append-only witness logging and hash-chain verification can improve auditability, but they do not substitute for preventative authorization controls. If presented as evidence of governance enforcement, they may create a false sense of security while only detecting or recording actions after the fact.
Append-only witness logging and hash-chain verification can improve auditability, but they do not substitute for preventative authorization controls. If presented as evidence of governance enforcement, they may create a false sense of security while only detecting or recording actions after the fact.
Referenced artifact was not completely inspected
npx tsx scripts/governance.ts pipeline '<intent-json>' --policy policies/standard.yaml
Referenced artifact was not completely inspected
npx tsx scripts/governance.ts pipeline '<intent-json>' --policy policies/standard.yaml
Referenced artifact was not completely inspected
npx tsx scripts/governance.ts pipeline '<intent-json>' --policy policies/standard.yaml
Referenced artifact was not completely inspected
npx tsx scripts/governance.ts pipeline '<intent-json>' --policy policies/standard.yaml
Referenced artifact was not completely inspected
npx tsx scripts/governance.ts pipeline '<intent-json>' --policy policies/standard.yaml
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
rules:
- name: block-credentials
match:
target_pattern: "**/*.env"
verdict: deny
reason: "Credential files are never accessible"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
rules:
- name: block-credentials
match:
target_pattern: "**/*.env"
verdict: deny
reason: "Credential files are never accessible"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
rules:
- name: block-credentials
match:
target_pattern: "**/*.env"
verdict: deny
reason: "Credential files are never accessible"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
rules:
- name: block-credentials
match:
target_pattern: "**/*.env"
verdict: deny
reason: "Credential files are never accessible"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
rules:
- name: block-credentials
match:
target_pattern: "**/*.env"
verdict: deny
reason: "Credential files are never accessible"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
rules:
- name: block-credentials
match:
target_pattern: "**/*.env"
verdict: deny
reason: "Credential files are never accessible"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
rules:
- name: block-credentials
match:
target_pattern: "**/*.env"
verdict: deny
reason: "Credential files are never accessible"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
rules:
- name: block-credentials
match:
target_pattern: "**/*.env"
verdict: deny
reason: "Credential files are never accessible"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
rules:
- name: block-credentials
match:
target_pattern: "**/*.env"
verdict: deny
reason: "Credential files are never accessible"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
rules:
- name: block-credentials
match:
target_pattern: "**/*.env"
verdict: deny
reason: "Credential files are never accessible"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
rules:
- name: block-credentials
match:
target_pattern: "**/*.env"
verdict: deny
reason: "Credential files are never accessible"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
rules:
- name: block-credentials
match:
target_pattern: "**/*.env"
verdict: deny
reason: "Credential files are never accessible"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
rules:
- name: block-credentials
match:
target_pattern: "**/*.env"
verdict: deny
reason: "Credential files are never accessible"
No suspicious patterns detected.