Commit 408c97c
coresight: prevent deactivate active config while enabling the config
While enable active config via cscfg_csdev_enable_active_config(),
active config could be deactivated via configfs' sysfs interface.
This could make UAF issue in below scenario:
CPU0 CPU1
(sysfs enable) load module
cscfg_load_config_sets()
activate config. // sysfs
(sys_active_cnt == 1)
...
cscfg_csdev_enable_active_config()
lock(csdev->cscfg_csdev_lock)
// here load config activate by CPU1
unlock(csdev->cscfg_csdev_lock)
deactivate config // sysfs
(sys_activec_cnt == 0)
cscfg_unload_config_sets()
unload module
// access to config_desc which freed
// while unloading module.
cscfg_csdev_enable_config
To address this, use cscfg_config_desc's active_cnt as a reference count
which will be holded when
- activate the config.
- enable the activated config.
and put the module reference when config_active_cnt == 0.
Fixes: f8cce2f ("coresight: syscfg: Add API to activate and enable configurations")
Suggested-by: Suzuki K Poulose <[email protected]>
Signed-off-by: Yeoreum Yun <[email protected]>
Reviewed-by: Leo Yan <[email protected]>
Signed-off-by: Suzuki K Poulose <[email protected]>
Link: https://lore.kernel.org/r/[email protected]1 parent 53b9e26 commit 408c97c
File tree
2 files changed
+35
-16
lines changed- drivers/hwtracing/coresight
2 files changed
+35
-16
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
228 | 228 | | |
229 | 229 | | |
230 | 230 | | |
231 | | - | |
| 231 | + | |
232 | 232 | | |
233 | 233 | | |
234 | 234 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
869 | 869 | | |
870 | 870 | | |
871 | 871 | | |
| 872 | + | |
| 873 | + | |
| 874 | + | |
| 875 | + | |
| 876 | + | |
| 877 | + | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
| 881 | + | |
| 882 | + | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
872 | 891 | | |
873 | 892 | | |
874 | 893 | | |
| |||
892 | 911 | | |
893 | 912 | | |
894 | 913 | | |
895 | | - | |
896 | | - | |
897 | | - | |
| 914 | + | |
| 915 | + | |
898 | 916 | | |
| 917 | + | |
| 918 | + | |
899 | 919 | | |
900 | 920 | | |
901 | 921 | | |
902 | 922 | | |
903 | 923 | | |
904 | 924 | | |
905 | | - | |
906 | | - | |
907 | | - | |
908 | | - | |
909 | | - | |
910 | | - | |
911 | 925 | | |
912 | 926 | | |
913 | 927 | | |
| |||
922 | 936 | | |
923 | 937 | | |
924 | 938 | | |
925 | | - | |
926 | 939 | | |
927 | | - | |
| 940 | + | |
928 | 941 | | |
929 | 942 | | |
930 | 943 | | |
| |||
1049 | 1062 | | |
1050 | 1063 | | |
1051 | 1064 | | |
1052 | | - | |
| 1065 | + | |
1053 | 1066 | | |
1054 | 1067 | | |
1055 | 1068 | | |
| |||
1064 | 1077 | | |
1065 | 1078 | | |
1066 | 1079 | | |
1067 | | - | |
1068 | | - | |
| 1080 | + | |
| 1081 | + | |
1069 | 1082 | | |
1070 | 1083 | | |
1071 | 1084 | | |
| |||
1099 | 1112 | | |
1100 | 1113 | | |
1101 | 1114 | | |
| 1115 | + | |
| 1116 | + | |
| 1117 | + | |
1102 | 1118 | | |
| 1119 | + | |
1103 | 1120 | | |
1104 | 1121 | | |
1105 | 1122 | | |
| |||
1138 | 1155 | | |
1139 | 1156 | | |
1140 | 1157 | | |
1141 | | - | |
| 1158 | + | |
1142 | 1159 | | |
| 1160 | + | |
| 1161 | + | |
1143 | 1162 | | |
1144 | 1163 | | |
1145 | 1164 | | |
| |||
0 commit comments