Description
Vibe-Trading before 0.1.10 builds the proposal file path by joining a caller-supplied proposal identifier onto the broker proposals directory without sanitization (agent/src/live/mandate/commit.py). A proposal identifier containing path traversal sequences causes the application to load an attacker-controlled JSON file as an authoritative live trading mandate. Combined with the file upload endpoint, an admitted caller can write a JSON file to a known location and traverse to it, and because the ceilings validation is skipped when ceilings are absent, the attacker fully controls the committed mandate.
Problem types
Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
Product status
Any version before 0.1.10
Credits
Chia Min Jun Lennon
References
github.com/HKUDS/Vibe-Trading/pull/256
github.com/HKUDS/Vibe-Trading/releases/tag/v0.1.10 (Release Notes)
github.com/HKUDS/Vibe-Trading/pull/256 (Fix PR)
github.com/...ommit/0ab701302f90e701c9dc558a898a217a376610c3 (Fix Commit)
www.vulncheck.com/...er-allows-forging-live-trading-mandates