T09 · Insecure Skill Coding Practices
- Location
scripts/verify_install.sh:9- Finding
Mandatory installation verification failures are suppressed
- Content
View full analysis
Vulnerability Details
File Location:
scripts/verify_install.sh, lines 9–15
Vulnerability Type: Failure suppression and false-positive verification
Risk Level: Mediumbash echo "[INFO] Memory slot binding" openclaw config get plugins.slots.memory || true echo "[INFO] Skills readiness" openclaw skills check || true echo "[PASS] Verification completed."Technical Analysis
The script suppresses nonzero exit statuses from the memory-slot and skill-readiness checks by appending
|| true. Because the script usesset -e, these expressions specifically override the intended fail-fast behavior.The memory-slot command also only retrieves the configured value; it does not verify that the value equals
evermemory. The script then unconditionally prints a success message even if the slot query or skill-readiness check failed.Consequently, callers cannot rely on a successful exit status or the
[PASS]message as evidence that all documented installation requirements were met.Attack Path
- A faulty, incomplete, or tampered installation leaves
plugins.slots.memoryunset or bound to a different plugin. - Alternatively, the installed skill fails the
openclaw skills checkreadiness validation. - An operator or deployment pipeline invokes
scripts/verify_install.sh. - The relevant command returns a nonzero status.
|| trueconverts that failure into a successful shell expression.- The script continues and prints
[PASS] Verification completed. - Downstream automation or an operator accepts the installation despite its invalid state.
Impact Assessment
This issue does not directly grant additional operating-system privileges. Its impact is on deployment integrity and assurance: an unbound memory slot, unavailable skill, or otherwise incomplete installation can be falsely approved for use. This may cause incorrect runtime behavior, loss of expected memory functionalit ...[truncated 66 chars]
- A faulty, incomplete, or tampered installation leaves
- Remediation
View remediation
Remediation Suggestions
- Remove
|| truefrom every mandatory verification command so failures propagate throughset -e. - Capture and validate the memory-slot value explicitly rather than checking only whether it can be retrieved:
bash memory_slot="$(openclaw config get plugins.slots.memory)" if [[ "$memory_slot" != "evermemory" ]]; then echo "[ERROR] Expected memory slot 'evermemory', found: $memory_slot" >&2 exit 1 fi - Require
openclaw skills checkto return successfully:bash openclaw skills check - Print the final
[PASS]message only after every mandatory check has succeeded. - Add automated tests covering an unset slot, an incorrectly bound slot, and a failed skill-readiness check. Each case should produce a nonzero script exit status.
- Remove
