title: Vault Key Partially Predetermined
description:
Due to the implementation of "deriveVaultKey", prior to version 7.10, the generated vault key
would always have the last 16 bytes predetermined to be "arfoobarfoobarfo".
This issue happens because "deriveVaultKey" calls "retrieveCloudKey" (which will always
return "foobarfoobarfoobarfoobarfoobarfo" as the key), and then merges the 32byte
randomly generated key with this key (by takeing 16bytes from each, see "mergeKeys").
This makes the key a lot weaker.
This issue does not persist in devices that were initialized on/after version 7.10, but devices
that were initialized before that and updated to a newer version still have this issue.
Roll an update that enforces the full 32bytes key usage.
problem types: CWE-321 Use of Hard-coded Cryptographic Key
affected:
{
defaultStatus: unaffected
packageName: EVE OS
product: EVE OS
programFiles: [https://github.com/lf-edge/eve/tree/master/pkg/pillar/cmd/vaultmgr/vaultmgr.go, https://github.com/lf-edge/eve/tree/master/pkg/pillar/vault/key.go]
repo: https://github.com/lf-edge/eve
vendor:  LF-Edge, Zededa
versions:
lessThan: 7.10, status: affected, version: 0, versionType: release
}
metrics:
cvssV3_1: [
attackComplexity: HIGH
attackVector: LOCAL
availabilityImpact: HIGH
baseScore: 7.8
baseSeverity: HIGH
confidentialityImpact: HIGH
integrityImpact: HIGH
privilegesRequired: LOW
scope: CHANGED
userInteraction: NONE
vectorString: CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
version: 3.1
]
format: CVSS
scenarios: GENERAL