Skip to content

Restored PersistentVolumes may be bound to wrong PersistentVolumeClaims

Moderate
nrb published GHSA-72xg-3mcq-52v4 Oct 21, 2020

Package

No package listed

Affected versions

v0.*, v1.*

Patched versions

v1.4.3, v1.5.2

Description

CVSS 3.0 score: 6.4

Impact

Velero restores PersistentVolumes from snapshots prior to creating their associated PersistentVolumeClaims.

Velero also cleared all PersistentVolume's claimRef data, which meant that on restore in busy clusters, it is possible that Kubernetes would match the PersistentVolume with a PersistentVolumeClaim other than the one that originally made it, thus leaking data to unauthorized users.

This does not impact volumes restored via the Velero restic support, which are recreated with completely new PersistentVolumes upon restore.

Components affected

This vulnerability was part of the Velero restore controller.

Patches

Users should upgrade their clusters to either v1.4.3 or v1.5.2 in order to fix the vulnerable behavior.

Both of these versions have been updated to associate bound PersistentVolumes with only their target PersistentVolumeClaims by leaving the claimRef intact on restore.

Workarounds

There are no current workarounds for this issue.

References

Refer to this Kubernetes issue comment for how binding happens between PersistentVolumes and PersistentVolumeClaims.

Credit

he Velero project team would like to thank Arianit Uka of StackSoft for reporting this problem and working with us on its remediation.

For more information

If you have any questions or comments about this advisory:

Severity

Moderate

CVE ID

CVE-2020-3996

Weaknesses

No CWEs

Credits