Description
Hermes WebUI before version 0.51.303 contains a time-of-check time-of-use (TOCTOU) race condition vulnerability in the git_discard function within api/workspace_git.py that allows attackers to delete files outside the configured workspace boundary by replacing a validated path component with a symlink after validation but before deletion. Attackers can substitute a workspace-controlled path component with a symlink pointing to an external directory between the safe_resolve_ws() validation step and the subsequent Path.unlink() or shutil.rmtree() deletion call, causing the delete operation to follow the symlink and remove arbitrary files outside the workspace.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| nesquena | hermes-webui | < 0.51.303 | 0.51.303 |
References
- hermes-webui 0.51.303 Release Notes release-notes
- https://github.com/nesquena/hermes-webui/pull/3702 issue-tracking patch
- https://github.com/nesquena/hermes-webui/pull/3756 issue-tracking patch
- https://github.com/nesquena/hermes-webui/commit/4580f584964d640b95c4ffc9245a21ab926bec73 patch
- https://www.vulncheck.com/advisories/hermes-webui-toctou-race-condition-via-git-discard third-party-advisory