T09 · Insecure Skill Coding Practices
- Location
references/setup.md:44- Finding
Hardcoded Shared Container Registry Credential
- Content
View full analysis
Vulnerability Details
File Location:
references/setup.md, lines 44–49
Vulnerability Type: Hardcoded plaintext credential and insecure command-line secret handling
Risk Level: CriticalVulnerable Code
bash ### Docker image — Method A: D-Robotics private registry (recommended) Log in to the official registry: docker login -u 'ccr$deliver-ronly' registry.d-robotics.cc -p 'VLaeatrjF9yGf6I44trT74zKhUpZSVlr'Technical Analysis
The documentation embeds a reusable registry username and password directly in the Skill package. Anyone who can read the project can recover and reuse the credential without needing access to a separate secret-management system.
The password is also supplied through the
docker login -pcommand-line argument. Depending on the operating system and shell configuration, this can expose it through:- Shell history files
- Process inspection utilities
- Terminal transcripts
- CI/CD logs
- Command auditing and telemetry
- Copied documentation or support messages
Even if the account is intended to be read-only, publishing a shared credential removes accountability and allows unrestricted use within the permissions assigned to that account.
Attack Path
- An attacker obtains the Skill package or reads
references/setup.md. - The attacker extracts the embedded registry username and password.
- The attacker authenticates to
registry.d-robotics.ccusing the disclosed credential. - The attacker enumerates or downloads any images and metadata accessible to that account.
- If the credential has broader permissions than documented, the attacker may access additional private repositories or perform other registry operations.
- Continued use of the same credential by legitimate users makes attribution and revocation difficult.
Impact Assessment
The attacker obtains the registry privileges assigned to
ccr$deliver-ronly. The exact scope cannot b ...[truncated 459 chars]- Remediation
View remediation
Remediation Suggestions
-
Immediately revoke and rotate the exposed registry credential.
-
Remove both the username and password from the Skill, its version history, published archives, caches, and generated documentation.
-
Require users to obtain individual, narrowly scoped credentials through an authenticated vendor process.
-
Avoid command-line password arguments. Use standard input instead:
bash printf '%s' "$D_ROBOTICS_REGISTRY_PASSWORD" | docker login \ --username "$D_ROBOTICS_REGISTRY_USERNAME" \ --password-stdin \ registry.d-robotics.cc -
Store credentials in an approved secret manager, operating-system keychain, or CI/CD secret facility.
-
Configure a Docker credential helper so authenticated tokens are not stored unencrypted in Docker configuration files.
-
Apply least privilege, short token lifetimes, per-user identities, access logging, and automated rotation.
-
Review registry access logs for unauthorized use of the disclosed credential.
-
Add secret scanning to repository and release pipelines to prevent future plaintext credential publication.
-
