T09 · Insecure Skill Coding Practices
- Location
assets/config.json:2- Finding
Plaintext Personal Information and Unsafe Identity Defaults
- Content
View full analysis
Vulnerability Details
File Location:
assets/config.json:2-7; additional executable defaults atscripts/browse_311.py:204-209and examples atSKILL.md:35-43,56-65
Vulnerability Type: Plaintext sensitive data and unsafe hardcoded defaults
Risk Level: MediumVulnerable Code
json { "name": "Ricardo Díaz", "phone": "+19299990000", "email": "ricardo@example.com", "home_address": "726 DeKalb Avenue", "work_address": "726 DeKalb Avenue", "apartment": "1E", "preferred_contact": "email", "notify_updates": true }The same identity is embedded as executable defaults:
python parser.add_argument('--location', default='726 DeKalb Avenue, Brooklyn, NY') parser.add_argument('--vehicle', default='Gray Nissan Micra') parser.add_argument('--duration', default='10 hours') parser.add_argument('--name', default='Ricardo Díaz') parser.add_argument('--email', default='ricardo@example.com') parser.add_argument('--phone', default='+19299990000')Technical Analysis
The package stores reporter identity and address information in plaintext and duplicates that information in command-line defaults. Any person or process able to read the distributed project can recover these details.
The executable defaults create an additional integrity risk. The
submitcommand does not require the operator to provide reporter details, so invoking it without overrides can populate a government-service form with the embedded identity. The profile inassets/config.jsonis not read by the script, meaning its inclusion does not currently provide a functional configuration benefit.Attack Path
- An attacker obtains read access to the Skill package, repository, archive, build artifact, or backup.
- The attacker reads
assets/config.json,SKILL.md, or the argument defaults inscripts/browse_311.py. - The attacker recovers the embedded name, telephone number, email address ...[truncated 578 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove personal or real-looking identity data from source code, configuration files, and documentation.
- Replace documentation values with unmistakably synthetic placeholders.
- Remove defaults for identity, contact, and location arguments; mark required values with
required=True. - Reject missing or placeholder values before opening or submitting a form.
- Store user profiles outside the distributed Skill package in a user-controlled file with restrictive filesystem permissions.
- Do not commit user profile files; provide a sanitized template such as
config.example.jsoninstead. - Add secret and personal-data scanning to repository and release workflows.
- Require an explicit review of the reporter identity and complaint details immediately before submission.
