T09 · Insecure Skill Coding Practices
- Location
scripts/main.py:20- Finding
Insecure Inventory File Handling Enables Symlink-Based File Overwrite and Data Exposure
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a narrow local reagent-expiry tracker with expected inventory storage, but users should be aware of local persistence, file-hardening gaps, and an expired-item display bug.
Use this only for ordinary, non-regulated reagent expiry tracking. Before installing, understand that it stores inventory details locally at ~/.openclaw/reagent_inventory.json in plaintext, so avoid use on shared accounts or for sensitive regulated inventory. Manually verify expired-item reports until the overdue display bug is fixed, and keep backups if the inventory matters operationally.
scripts/main.py:20Insecure Inventory File Handling Enables Symlink-Based File Overwrite and Data Exposure
Without declared permissions the skill's intent is opaque and cannot be validated.
The code comment/docstring frames this function as checking upcoming expirations, and the print logic later distinguishes overdue items using negative day counts. However, line L055 stores abs(days_until) for expired reagents, which prevents _print_alerts from ever seeing a negative value and causes overdue reagents to be reported as having days left instead of being overdue.
This code automatically creates and writes to ~/.openclaw/reagent_inventory.json, which persists reagent metadata such as barcodes, names, locations, and expiry dates. Although the write is part of the tool's purpose, there is no clear user-facing disclosure in the code before persistence occurs beyond a post-action success message.
No suspicious patterns detected.