T09 · Insecure Skill Coding Practices
- Location
SKILL.md:20- Finding
Automatic Configuration Inspection May Expose Authentication Material
- Content
View full analysis
/dev/null || echo "(no config saved)"` ``` ### Technical Analysis The embedded command executes when the skill is loaded and invokes `faces config:show` without requiring a user operation. According to `references/AUTH.md:142-149`, the Faces configuration can contain a JWT or API key stored in `~/.faces/config.json`. The reviewed project does not establish that `faces config:show` reliably redacts authentication values. If the command returns credentials or other sensitive account settings, its output can enter the agent context, execution logs, or debugging telemetry. Even if the current CLI release redacts secrets, automatically inspecting configuration expands the skill's access beyond what is necessary at load time and relies on an unaudited external executable to enforce redaction. ### Attack Path 1. A user has previously authenticated with the Faces CLI, causing a JWT or API key to be stored in `~/.faces/config.json`. 2. The skill is loaded, and the embedded command automatically invokes `faces config:show`. 3. The third-party CLI reads the saved configuration. 4. If sensitive fields are not redacted, their values are returned in command output. 5. The output becomes available in the agent context or associated logs. 6. Anyone with access to that context or logging channel may reuse the exposed credential against the Faces API. ### Impact Assessment A disclosed JWT may permit account-level operations supported by the authenticated user, including API-key management and authentication commands. A disclosed API key may permit inference, compilation, or access to allowed Faces within its configured face, model, budget, and expiration restrictions. The exact scope depends on the exposed credential's permiss ...[truncated 163 chars]- Remediation
View remediation
