Commit 48ca290
committed
Make relation-enumerating operations be security-restricted operations.
When a feature enumerates relations and runs functions associated with
all found relations, the feature's user shall not need to trust every
user having permission to create objects. BRIN-specific functionality
in autovacuum neglected to account for this, as did pg_amcheck and
CLUSTER. An attacker having permission to create non-temp objects in at
least one schema could execute arbitrary SQL functions under the
identity of the bootstrap superuser. CREATE INDEX (not a
relation-enumerating operation) and REINDEX protected themselves too
late. This change extends to the non-enumerating amcheck interface.
Back-patch to v10 (all supported versions).
Sergey Shinderuk, reviewed (in earlier versions) by Alexander Lakhin.
Reported by Alexander Lakhin.
Security: CVE-2022-15521 parent d8ab73f commit 48ca290
File tree
10 files changed
+361
-30
lines changed- contrib/amcheck
- expected
- sql
- src
- backend
- access/brin
- catalog
- commands
- utils/init
- test/regress
- expected
- sql
10 files changed
+361
-30
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
167 | 167 | | |
168 | 168 | | |
169 | 169 | | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
170 | 192 | | |
171 | 193 | | |
172 | 194 | | |
173 | 195 | | |
174 | 196 | | |
175 | 197 | | |
| 198 | + | |
176 | 199 | | |
177 | 200 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
109 | 109 | | |
110 | 110 | | |
111 | 111 | | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
112 | 132 | | |
113 | 133 | | |
114 | 134 | | |
115 | 135 | | |
116 | 136 | | |
117 | 137 | | |
| 138 | + | |
118 | 139 | | |
119 | 140 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| 37 | + | |
37 | 38 | | |
38 | 39 | | |
39 | 40 | | |
| |||
206 | 207 | | |
207 | 208 | | |
208 | 209 | | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
209 | 213 | | |
210 | 214 | | |
211 | 215 | | |
| |||
222 | 226 | | |
223 | 227 | | |
224 | 228 | | |
| 229 | + | |
225 | 230 | | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
226 | 242 | | |
| 243 | + | |
227 | 244 | | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
228 | 250 | | |
229 | 251 | | |
230 | 252 | | |
| |||
267 | 289 | | |
268 | 290 | | |
269 | 291 | | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
270 | 298 | | |
271 | 299 | | |
272 | 300 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| 33 | + | |
33 | 34 | | |
34 | 35 | | |
35 | 36 | | |
| |||
869 | 870 | | |
870 | 871 | | |
871 | 872 | | |
| 873 | + | |
| 874 | + | |
| 875 | + | |
872 | 876 | | |
873 | 877 | | |
874 | 878 | | |
| |||
895 | 899 | | |
896 | 900 | | |
897 | 901 | | |
| 902 | + | |
898 | 903 | | |
| 904 | + | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
| 911 | + | |
| 912 | + | |
| 913 | + | |
| 914 | + | |
| 915 | + | |
| 916 | + | |
| 917 | + | |
899 | 918 | | |
900 | 919 | | |
901 | 920 | | |
| |||
910 | 929 | | |
911 | 930 | | |
912 | 931 | | |
913 | | - | |
| 932 | + | |
914 | 933 | | |
915 | 934 | | |
916 | 935 | | |
| |||
928 | 947 | | |
929 | 948 | | |
930 | 949 | | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
931 | 956 | | |
932 | 957 | | |
933 | 958 | | |
| |||
969 | 994 | | |
970 | 995 | | |
971 | 996 | | |
| 997 | + | |
| 998 | + | |
| 999 | + | |
972 | 1000 | | |
973 | 1001 | | |
974 | 1002 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3271 | 3271 | | |
3272 | 3272 | | |
3273 | 3273 | | |
3274 | | - | |
| 3274 | + | |
| 3275 | + | |
| 3276 | + | |
| 3277 | + | |
| 3278 | + | |
| 3279 | + | |
| 3280 | + | |
| 3281 | + | |
| 3282 | + | |
| 3283 | + | |
| 3284 | + | |
3275 | 3285 | | |
3276 | 3286 | | |
3277 | 3287 | | |
| |||
3284 | 3294 | | |
3285 | 3295 | | |
3286 | 3296 | | |
3287 | | - | |
3288 | | - | |
3289 | | - | |
3290 | | - | |
3291 | | - | |
3292 | | - | |
3293 | | - | |
3294 | | - | |
3295 | | - | |
3296 | | - | |
3297 | 3297 | | |
3298 | 3298 | | |
3299 | 3299 | | |
| |||
3756 | 3756 | | |
3757 | 3757 | | |
3758 | 3758 | | |
| 3759 | + | |
| 3760 | + | |
| 3761 | + | |
3759 | 3762 | | |
3760 | 3763 | | |
3761 | 3764 | | |
| |||
3769 | 3772 | | |
3770 | 3773 | | |
3771 | 3774 | | |
| 3775 | + | |
| 3776 | + | |
| 3777 | + | |
| 3778 | + | |
| 3779 | + | |
| 3780 | + | |
| 3781 | + | |
| 3782 | + | |
| 3783 | + | |
| 3784 | + | |
3772 | 3785 | | |
3773 | 3786 | | |
3774 | 3787 | | |
| |||
3918 | 3931 | | |
3919 | 3932 | | |
3920 | 3933 | | |
| 3934 | + | |
| 3935 | + | |
| 3936 | + | |
| 3937 | + | |
| 3938 | + | |
| 3939 | + | |
3921 | 3940 | | |
3922 | 3941 | | |
3923 | 3942 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
| 47 | + | |
47 | 48 | | |
48 | 49 | | |
49 | 50 | | |
| |||
268 | 269 | | |
269 | 270 | | |
270 | 271 | | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
271 | 275 | | |
272 | 276 | | |
273 | 277 | | |
| |||
284 | 288 | | |
285 | 289 | | |
286 | 290 | | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
287 | 301 | | |
288 | 302 | | |
289 | 303 | | |
| |||
298 | 312 | | |
299 | 313 | | |
300 | 314 | | |
301 | | - | |
| 315 | + | |
302 | 316 | | |
303 | 317 | | |
304 | | - | |
| 318 | + | |
305 | 319 | | |
306 | 320 | | |
307 | 321 | | |
| |||
315 | 329 | | |
316 | 330 | | |
317 | 331 | | |
318 | | - | |
| 332 | + | |
319 | 333 | | |
320 | 334 | | |
321 | 335 | | |
| |||
326 | 340 | | |
327 | 341 | | |
328 | 342 | | |
329 | | - | |
| 343 | + | |
330 | 344 | | |
331 | 345 | | |
332 | 346 | | |
| |||
336 | 350 | | |
337 | 351 | | |
338 | 352 | | |
339 | | - | |
| 353 | + | |
340 | 354 | | |
341 | 355 | | |
342 | 356 | | |
343 | 357 | | |
344 | 358 | | |
345 | 359 | | |
346 | | - | |
| 360 | + | |
347 | 361 | | |
348 | 362 | | |
349 | 363 | | |
| |||
397 | 411 | | |
398 | 412 | | |
399 | 413 | | |
400 | | - | |
| 414 | + | |
401 | 415 | | |
402 | 416 | | |
403 | 417 | | |
| |||
412 | 426 | | |
413 | 427 | | |
414 | 428 | | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
415 | 436 | | |
416 | 437 | | |
417 | 438 | | |
| |||
0 commit comments