authlock
AuthLock provides legitimate TOTP-based secret encryption but contains an undocumented subprocess execution feature with shell=True that poses command injection risk.
The cmd_open function uses subprocess.run(shell=True) with the user-supplied --exec argument. While the example shows legitimate use for SSH, the command is not sanitized and could allow command injection if metacharacters are included in args.exec.
authlock_cli.py:336 为什么得出这个结论
2/4 个维度触发发现 1 项声明之外的能力或越权行为。
当前没有明显的高危外联或执行信号。
报告包含 0 步攻击链,另有 1 项高危或严重发现。
发现 3 项需要关注的依赖或供应链线索。
风险分是怎么被拉高的
cmd_open uses subprocess.run(shell=True) with user-supplied exec argument without validation
~/.ssh/id_rsa and similar sensitive files are explicitly mentioned in examples
--exec flag allows command execution, partially documented in SKILL.md
最关键的证据
Shell command injection vulnerability in --exec
The cmd_open function uses subprocess.run(shell=True) with the user-supplied --exec argument. While the example shows legitimate use for SSH, the command is not sanitized and could allow command injection if metacharacters are included in args.exec.
authlock_cli.py:336 Sensitive path access not prominently documented
The SKILL.md examples show encrypting ~/.ssh/id_rsa but this sensitive path access is not declared in the capability requirements section.
SKILL.md:45 TOTP seed stored in plaintext config
The TOTP seed is stored in config.json without additional encryption beyond file permissions. While this is standard practice, the seed is the critical secret.
authlock_cli.py:103 声明能力 vs 实际能力
SKILL.md:seal/open commands; authlock_cli.py:cmd_seal,cmd_open authlock_cli.py:336 - subprocess.run(cmd, shell=True) SKILL.md:OPENCLAW_WORKSPACE,AUTHLOCK_HOME usage No network requests found 可疑产物与外联
没有提取到明显 IOC。
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| cryptography | * | pip | 否 | Standard encryption library |
| pyotp | * | pip | 否 | TOTP generation |
| qrcode | * | pip | 否 | QR code display |
文件构成
authlock_cli.py SKILL.md