Integrity MAC depends on unordered SQLite row ordering #69
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Info
Severity: LOW
Attack vector: offline
Impact
Can cause spurious integrity verification failures and deny service, even when the underlying data is logically unchanged.
Description
Entity verification serializes vectors such as targets and volume rate limits using the order returned from SQLite. Some of those rows are fetched without an explicit
ORDER BY, so logically identical data may be serialized in a different order and produce a different MAC.Example flow
Mitigation
Sort the relevant collections before serialization or add explicit
ORDER BYclauses to every query that feeds MAC-protected vectors.#77