Executive brief
skillctl is a tool used to manage and share 'skills' or code modules. Multiple vulnerabilities allow an attacker to steal sensitive files (like SSH keys), delete arbitrary data on a user's computer, or crash the system by including malicious files in a shared library or pull request. These issues can lead to full system compromise or data loss if a user interacts with a compromised skill library.
Technical details
A security audit of skillctl identified five distinct vulnerabilities: 1) Argument injection in 'git ls-tree' via unvalidated 'source_sha' fields in .skills.toml files. 2) Denial of Service (DoS) via FIFO/device files in 'copy_dir_all' which causes the process to block or exhaust memory. 3) Path traversal in the '--dest' flag of the 'add' command allowing arbitrary directory deletion. 4) CRLF injection in skill names allowing for the forgery of git commit trailers. 5) Hardlink exfiltration where 'fs::copy' dereferences hardlinks to sensitive files (e.g., ~/.ssh/id_rsa), allowing their content to be uploaded to a library. These are fixed in version 0.1.3 by implementing strict lexical validation, rejecting non-regular files, and preventing hardlink/traversal resolution.
Affected products
- umanio-agency skillctl < 0.1.3
Timeline
- 2026-05-21: patched: Fixes released in version 0.1.3
- 2026-06-22: advisory: GitHub Advisory published
References
- https://github.com/umanio-agency/skillctl/security/advisories/GHSA-74p7-6h78-gw8p
- https://github.com/umanio-agency/skillctl/security/advisories/GHSA-wx3m-whqv-xv47
- https://github.com/umanio-agency/skillctl/commit/28dfce3
- https://github.com/umanio-agency/skillctl/releases/tag/v0.1.3
- https://api.github.com/repos/umanio-agency/skillctl/security-advisories/GHSA-74p7-6h78-gw8p