GothenburgBitFactory / GothenburgBitFactory/taskchampion
Parent version is unverified
- Dominant language
- Rust
- Stars
- 184
- Forks
- 41
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 7
Description
In the Sealed/Unseal structs, the encryption only covers version_id. The parent version id only lives in the filename/object name/etc. Anyone with write access to the store (but not the encryption key) could rename v-parentA-versionB → v-parentC-versionB and the decryption would still succeed, silently rewriting the version chain.
This is a small risk, and more likely to be a result of a failed transaction (ask me how I discovered it), but the fix is easy enough. Adding a parent_id to the Sealed/Unsealed structs with a check either in cryptor, or more likely in each server implementation, could prevent this.
Contributor guide
Assessment
This issue has not been assessed yet.