other
Warning
- Location
- scripts/ari.py:1683
- Finding
- Specialized Skill Bundles Unrelated Privileged API Capabilities## Vulnerability Details **File Location**: `scripts/ari.py:1683-1922` **Vulnerability Type**: Excessive capability scope and failure to enforce least functionality **Risk Level**: Medium The declared Skill is limited to deterministic Amazon listing-change watch operations, but its bundled executable also registers review collection, paid AI analysis, competitor management, exports, account operations, and other server-side mutation capabilities. Relevant command registrations include: ```python sub = ap.add_subparsers(dest="command", required=True) p.set_defaults(fn=cmd_setup) p.set_defaults(fn=cmd_configure) p.set_defaults(fn=cmd_check) p.set_defaults(fn=cmd_autoconfirm) p.set_defaults(fn=cmd_products) p.set_defaults(fn=cmd_collect) p.set_defaults(fn=cmd_reviews) p.set_defaults(fn=cmd_schedule) p.set_defaults(fn=cmd_competitors) p.set_defaults(fn=cmd_analyze) watch_sub = watch_parser.add_subparsers( dest="watch_command", required=True ) p.set_defaults(fn=cmd_watch_list) p.set_defaults(fn=cmd_watch_create) p.set_defaults(fn=cmd_watch_pause) p.set_defaults(fn=cmd_watch_resume) p.set_defaults(fn=cmd_watch_delete) p.set_defaults(fn=cmd_watch_digest) p.set_defaults(fn=cmd_watch_events) p.set_defaults(fn=cmd_operation_run) p.set_defaults(fn=cmd_voc) p.set_defaults(fn=cmd_deepdive) p.set_defaults(fn=cmd_alerts) p.set_defaults(fn=cmd_leaderboard) p.set_defaults(fn=cmd_workbench) p.set_defaults(fn=cmd_advise) ``` ### Technical Analysis `SKILL.md` declares a fixed `watch/listing` workflow whose intended operations are limited to listing watches and deterministic digests. However, `scripts/ari.py` is a general-purpose ARI client with substantially broader functionality. The executable does not enforce a specialized-Skill allowlist at its entry point. Consequently, possession of the configured ARI API key gives this package access to every command registered by the general client, ...[truncated 2148 chars]
- Remediation
- ## Remediation Suggestions 1. Ship a dedicated watch-only executable containing only `setup`, narrowly scoped credential checks, and the documented `watch` subcommands. 2. Add a hard allowlist at the executable entry point for specialized distributions. Reject every top-level command other than those explicitly required by the Skill. 3. Separate the general-purpose ARI client into a different package that users must deliberately install. 4. Use API credentials with server-enforced scopes such as `watch:read` and `watch:write`, rather than relying only on client-side command restrictions. 5. Require explicit user confirmation for every watch mutation, including create, pause, resume, and delete, when invoked through an autonomous agent. 6. Disable account-level auto-confirm settings in specialized packages unless they are strictly required and clearly disclosed. 7. Add automated release tests that compare the declared workflow and capabilities in `_meta.json` and `skill-defaults.json` against the executable command registry. Fail packaging if unrelated commands are exposed. 8. Preserve the existing custom-base safeguard and restrictive API-key file permissions, as these appropriately reduce credential-redirection and local disclosure risks.
