T09 · Insecure Skill Coding Practices
- Location
src/index.mjs:68- Finding
Caller-Controlled External Votes Can Bypass Local Safety Evaluation
- Content
View full analysis
({ persona_id:`default-${n}`, name:`Default Persona ${n}`, reputation:0.5 })) }; } const votes = externalMode ? input.external_votes : makeVotes(personaSet, input.proposed_action, input.constraints || {}); const ag = aggregateVotes(votes, { method:'WEIGHTED_APPROVAL_VOTE', approve_threshold:0.7 }); ``` ### Technical Analysis When `mode` is `external_agent`, the caller-provided `external_votes` array is passed directly to `aggregateVotes()`. Local validation only confirms that the value is an array. The code does not enforce a vote schema, authenticate voter identities, verify signatures, restrict voters to an authorized set, or establish an independent quorum. External mode also bypasses `makeVotes()`, which is where this package applies its local checks for high-risk irreversible actions, sensitive-data flags, and human-confirmation requirements. Consequently, a party capab ...[truncated 1468 chars]- Remediation
View remediation
