T09 · Insecure Skill Coding Practices
- Location
SKILL.md:85- Finding
GVM Administrative Password Exposed Through Process Arguments
- Content
View full analysis
$TASK_NAME-target$TARGET" | \ grep -oP 'id="\K[^"]+') TASK_ID=$(gvm-cli --gmp-username admin --gmp-password "$GVM_PASSWORD" socket \ --xml "$TASK_NAME" | \ grep -oP 'id="\K[^"]+') gvm-cli --gmp-username admin --gmp-password "$GVM_PASSWORD" socket \ --xml "" REPORT_ID=$(gvm-cli --gmp-username admin --gmp-password "$GVM_PASSWORD" socket \ --xml "" | \ grep -oP 'last_report id="\K[^"]+') gvm-cli --gmp-username admin --gmp-password "$GVM_PASSWORD" socket \ --xml "" > /tmp/openvas-results.xml ``` ### Technical Analysis Although the password originates from the `GVM_PASSWORD` environment variable, the shell expands it into the argument passed to `--gmp-password`. The plaintext secret can consequently appear in the process argument vector while `gvm-cli` is running. Depending on operating-system process visibility and monitoring configuration, command arguments may be observable through process inspection utilities, `/proc` interfaces, process accounting, audit services, endpoint monitoring, or diagnostic collection. This contradicts the statement at `SKILL.md:343` that using an environment variable prevents the password from appearing in command history: the shell history may omit the expanded value, but the executed process still receives it in its arguments. The exposure is repeated across target creation, task creation, task startup, task retrieval, and report retrieval o ...[truncated 1496 chars]- Remediation
View remediation
