Executive brief
grepai, a tool for semantic search and AI-powered data processing, contains a flaw in how it caches data. The system fails to properly separate cached information between different projects, potentially allowing a local user to access data from a project they should not be able to see. This could lead to unauthorized access to sensitive information stored within the application's database cache.
Technical details
A vulnerability exists in grepai up to version 0.35.0 within the Postgres Embedding Cache component. The root cause is located in the `PostgresStore.LookupByContentHash` function in `indexer/chunker.go`, which performs lookups based solely on a content hash without verifying the associated project ID. This lack of cryptographic isolation allows for cross-project cache reuse. An attacker with local access and low privileges could exploit this to retrieve data belonging to other projects. A pull request (#250) has been submitted to scope these lookups by `project_id`, but as of the advisory date, it remains unmerged.
Affected products
- yoanbernabeu grepai <= 0.35.0
Timeline
- 2026-05-20: patched: Pull request to fix the issue submitted
- 2026-06-08: disclosed: Initial disclosure and NVD publication
- 2026-07-28: advisory: GitHub Advisory reviewed and updated