hibernate: Disable when the kernel is locked down
There is currently no way to verify the resume image when returning from hibernate. This might compromise the signed modules trust model, so until we can work with signed hibernate images we disable it when the kernel is locked down. Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org> Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Matthew Garrett <mjg59@google.com> Reviewed-by: Kees Cook <keescook@chromium.org> Cc: rjw@rjwysocki.net Cc: pavel@ucw.cz cc: linux-pm@vger.kernel.org Signed-off-by: James Morris <jmorris@namei.org>
This commit is contained in:
parent
155bdd30af
commit
38bd94b8a1
|
@ -106,6 +106,7 @@ enum lockdown_reason {
|
||||||
LOCKDOWN_MODULE_SIGNATURE,
|
LOCKDOWN_MODULE_SIGNATURE,
|
||||||
LOCKDOWN_DEV_MEM,
|
LOCKDOWN_DEV_MEM,
|
||||||
LOCKDOWN_KEXEC,
|
LOCKDOWN_KEXEC,
|
||||||
|
LOCKDOWN_HIBERNATION,
|
||||||
LOCKDOWN_INTEGRITY_MAX,
|
LOCKDOWN_INTEGRITY_MAX,
|
||||||
LOCKDOWN_CONFIDENTIALITY_MAX,
|
LOCKDOWN_CONFIDENTIALITY_MAX,
|
||||||
};
|
};
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
#include <linux/ctype.h>
|
#include <linux/ctype.h>
|
||||||
#include <linux/genhd.h>
|
#include <linux/genhd.h>
|
||||||
#include <linux/ktime.h>
|
#include <linux/ktime.h>
|
||||||
|
#include <linux/security.h>
|
||||||
#include <trace/events/power.h>
|
#include <trace/events/power.h>
|
||||||
|
|
||||||
#include "power.h"
|
#include "power.h"
|
||||||
|
@ -68,7 +69,7 @@ static const struct platform_hibernation_ops *hibernation_ops;
|
||||||
|
|
||||||
bool hibernation_available(void)
|
bool hibernation_available(void)
|
||||||
{
|
{
|
||||||
return (nohibernate == 0);
|
return nohibernate == 0 && !security_locked_down(LOCKDOWN_HIBERNATION);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -21,6 +21,7 @@ static char *lockdown_reasons[LOCKDOWN_CONFIDENTIALITY_MAX+1] = {
|
||||||
[LOCKDOWN_MODULE_SIGNATURE] = "unsigned module loading",
|
[LOCKDOWN_MODULE_SIGNATURE] = "unsigned module loading",
|
||||||
[LOCKDOWN_DEV_MEM] = "/dev/mem,kmem,port",
|
[LOCKDOWN_DEV_MEM] = "/dev/mem,kmem,port",
|
||||||
[LOCKDOWN_KEXEC] = "kexec of unsigned images",
|
[LOCKDOWN_KEXEC] = "kexec of unsigned images",
|
||||||
|
[LOCKDOWN_HIBERNATION] = "hibernation",
|
||||||
[LOCKDOWN_INTEGRITY_MAX] = "integrity",
|
[LOCKDOWN_INTEGRITY_MAX] = "integrity",
|
||||||
[LOCKDOWN_CONFIDENTIALITY_MAX] = "confidentiality",
|
[LOCKDOWN_CONFIDENTIALITY_MAX] = "confidentiality",
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue