T09 · Insecure Skill Coding Practices
- Location
SKILL.md:81- Finding
Predictable Default Passwords Assigned to Privileged Accounts
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 81 and 160
Vulnerability Type: Hardcoded weak credentials in example ISO recipes
Risk Level: HighVulnerable Code
At line 81:
json {"username": "admin", "password": "changeme", "groups": ["sudo"]}At line 160:
json "users": [{"username": "admin", "password": "admin", "groups": ["sudo", "docker"]}]Technical Analysis
The documented recipe schema and build example assign predictable plaintext passwords to an
adminaccount. The account is also placed in thesudogroup and, in one example, thedockergroup.Users or AI agents may submit these examples to
create_buildwithout replacing the example credentials. The resulting ISO could therefore contain publicly known credentials. Membership insudomay permit root-level command execution, depending on the generated image's sudo policy. Docker group access is also commonly equivalent to root access because a user can start a privileged container or mount the host filesystem.The weakness is especially consequential when the image enables SSH or is deployed to a VM with a reachable login interface.
Attack Path
- A user or agent copies one of the documented recipes without changing its password.
- OpenFactory builds an ISO containing the
adminaccount and predictable password. - The ISO is deployed to a VM or physical system with SSH, VNC, console, or another login surface accessible to an attacker.
- The attacker authenticates using
admin/adminoradmin/changeme. - The attacker invokes
sudoif allowed by policy, or abuses Docker group membership by launching a privileged container or mounting the host filesystem. - The attacker gains administrative control over the deployed system and its accessible data or services.
Impact Assessment
Successful exploitation could provide access to the generated operating-system instance. Where sudo ...[truncated 498 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove all literal passwords from the recipe schema and examples.
- Prefer SSH-key-only authentication and disable password-based SSH login by default.
- Accept password hashes rather than plaintext passwords when password authentication is unavoidable.
- Generate unique, cryptographically secure initial credentials for each build and deliver them through a protected secret-management channel.
- Require password rotation on first login and prevent initial credentials from being embedded permanently in an ISO.
- Add recipe validation that rejects common, default, blank, or breached passwords such as
adminandchangeme. - Warn users before building any recipe containing plaintext credentials.
- Apply least privilege: do not add accounts to
sudoordockerunless explicitly required. - Document that Docker group membership is generally equivalent to root access.
- Add automated tests that fail documentation and release checks when example recipes contain predictable credentials.
