|
Borislav Petkov |
addf70 |
From: Len Brown <len.brown@intel.com>
|
|
Borislav Petkov |
addf70 |
Date: Sat, 17 Oct 2020 16:06:48 +0200
|
|
Borislav Petkov |
addf70 |
Subject: [PATCH] powercap: Restrict energy meter to root access
|
|
Takashi Iwai |
ee434c |
Git-commit: 949dd0104c496fa7c14991a23c03c62e44637e71
|
|
Takashi Iwai |
ee434c |
Patch-mainline: v5.10-rc4
|
|
Borislav Petkov |
addf70 |
References: bsc#1170415 CVE-2020-8694
|
|
Borislav Petkov |
addf70 |
|
|
Borislav Petkov |
addf70 |
Remove non-privileged user access to power data contained in
|
|
Borislav Petkov |
addf70 |
/sys/class/powercap/intel_rapl/*/energy_uj.
|
|
Borislav Petkov |
addf70 |
|
|
Borislav Petkov |
addf70 |
Non-privileged users currently have read access to power data
|
|
Borislav Petkov |
addf70 |
and can use this data to form a security attack. Some privileged
|
|
Borislav Petkov |
addf70 |
drivers/applications need read access to this data, but don't expose it
|
|
Borislav Petkov |
addf70 |
to non-privileged users.
|
|
Borislav Petkov |
addf70 |
|
|
Borislav Petkov |
addf70 |
For example, thermald uses this data to ensure that power management
|
|
Borislav Petkov |
addf70 |
works correctly. Thus removing non-privileged access is preferred
|
|
Borislav Petkov |
addf70 |
over completely disabling this power reporting capability with
|
|
Borislav Petkov |
addf70 |
CONFIG_INTEL_RAPL=n.
|
|
Borislav Petkov |
addf70 |
|
|
Borislav Petkov |
addf70 |
Fixes: 95677a9a3847 ("PowerCap: Fix mode for energy counter")
|
|
Borislav Petkov |
addf70 |
Signed-off-by: Len Brown <len.brown@intel.com>
|
|
Borislav Petkov |
addf70 |
Acked-by: Borislav Petkov <bp@suse.de>
|
|
Borislav Petkov |
addf70 |
---
|
|
Borislav Petkov |
addf70 |
drivers/powercap/powercap_sys.c | 4 ++--
|
|
Borislav Petkov |
addf70 |
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
Borislav Petkov |
addf70 |
|
|
Borislav Petkov |
addf70 |
diff --git a/drivers/powercap/powercap_sys.c b/drivers/powercap/powercap_sys.c
|
|
Borislav Petkov |
addf70 |
index f808c5fa9838..3f0b8e2ef3d4 100644
|
|
Borislav Petkov |
addf70 |
--- a/drivers/powercap/powercap_sys.c
|
|
Borislav Petkov |
addf70 |
+++ b/drivers/powercap/powercap_sys.c
|
|
Borislav Petkov |
addf70 |
@@ -367,9 +367,9 @@ static void create_power_zone_common_attributes(
|
|
Borislav Petkov |
addf70 |
&dev_attr_max_energy_range_uj.attr;
|
|
Borislav Petkov |
addf70 |
if (power_zone->ops->get_energy_uj) {
|
|
Borislav Petkov |
addf70 |
if (power_zone->ops->reset_energy_uj)
|
|
Borislav Petkov |
addf70 |
- dev_attr_energy_uj.attr.mode = S_IWUSR | S_IRUGO;
|
|
Borislav Petkov |
addf70 |
+ dev_attr_energy_uj.attr.mode = S_IWUSR | S_IRUSR;
|
|
Borislav Petkov |
addf70 |
else
|
|
Borislav Petkov |
addf70 |
- dev_attr_energy_uj.attr.mode = S_IRUGO;
|
|
Borislav Petkov |
addf70 |
+ dev_attr_energy_uj.attr.mode = S_IRUSR;
|
|
Borislav Petkov |
addf70 |
power_zone->zone_dev_attrs[count++] =
|
|
Borislav Petkov |
addf70 |
&dev_attr_energy_uj.attr;
|
|
Borislav Petkov |
addf70 |
}
|
|
Borislav Petkov |
addf70 |
--
|
|
Borislav Petkov |
addf70 |
2.21.0
|
|
Borislav Petkov |
addf70 |
|