Executive brief
Pi is a terminal-based tool used by developers for coding tasks. In versions before 0.79.0, the tool would automatically load and execute configuration files and extensions found within a project's directory without asking for the user's permission. If a developer opens a malicious repository using Pi, an attacker could execute arbitrary code on the developer's machine with the same permissions as the Pi application.
Technical details
Pi, a terminal coding harness, suffers from an untrusted control sphere vulnerability (CWE-829). Prior to version 0.79.0, the application automatically loaded project-local resources, including TypeScript or JavaScript modules (extensions), from the '.pi' directory of the current working tree. Because these modules are executed within the Pi process without a trust boundary or user confirmation, a local attacker who can convince a user to run Pi within a malicious repository can achieve arbitrary code execution. The fix introduced in version 0.79.0 implements a trust gating mechanism that requires explicit user approval before loading project-local settings or executing extensions.
Affected products
- earendil-works Pi (coding-agent) < 0.79.0
Timeline
- 2026-06-23: advisory: NVD publication date
- 2026-06-08: patched: Fixes for project trust gating committed to repository
References
- https://github.com/earendil-works/pi/commit/38f18be44727e669eb0a6e2eb8edb51b0232d83c
- https://github.com/earendil-works/pi/commit/718215bd95b6fc6fa251580d27ea8aab857de390
- https://github.com/earendil-works/pi/commit/89a92207f1c9303d53d822fd9b0ac21578834cb4
- https://github.com/earendil-works/pi/commit/ce3a72444e1cc1eaa50475fb3378c7ffbb53ef49
- https://github.com/earendil-works/pi/commit/ff3e9df5f5b32368c20b0ef553a6834b3dee9350
- https://github.com/earendil-works/pi/releases/tag/v0.79.0
- https://github.com/earendil-works/pi/security/advisories/GHSA-mqxh-6gq7-558m