High, CVSS 7.7GoPublished
yutu: Arbitrary File Write via MCP caption-download Tool
CVE-2026-50158 · GHSA-2c7f-fxww-6w6c
- Affected
- Go github.com/eat-pray-ai/yutu < 0.10.9-dev1
- Fixed in
- 0.10.9-dev1· Vendor fix available
- Issue
- Arbitrary File Write via MCP caption-download Tool Summary The caption-download MCP tool in yutu passes the caller-supplied file parameter directly to os.Create() at pkg/caption/caption.go:272 without any path validation, canonicalization, or confinement to the pkg.Root boundary (YUTUROOT). A local attacker — or any process able to reach the HTTP MCP server — can write arbitrary content to any path writable by the yutu process, entirely outside the intended working directory. This is a High severity vulnerability (CVSS 7.7) with high integrity and availability impact. Details yutu uses pkg.Root (backed by Go 1.24's os.OpenRoot) to restrict all file I/O to the YUTUROOT directory. Every other caption file-write path honours this boundary: | Method | Sink | Confined? | |--------|------|-----------| | Caption.Insert() | pkg.Root.Open(c.File) (caption.go:109) | Yes | | Caption.Update() | pkg.Root.Open(c.File) (caption.go:193) | Yes | | Caption.Download() | os.Create(c.File)…
Recommended action: Upgrade to 0.10.9-dev1 (pre-release) or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.