Commit eedb068
committed
Make standard maintenance operations (including VACUUM, ANALYZE, REINDEX,
and CLUSTER) execute as the table owner rather than the calling user, using
the same privilege-switching mechanism already used for SECURITY DEFINER
functions. The purpose of this change is to ensure that user-defined
functions used in index definitions cannot acquire the privileges of a
superuser account that is performing routine maintenance. While a function
used in an index is supposed to be IMMUTABLE and thus not able to do anything
very interesting, there are several easy ways around that restriction; and
even if we could plug them all, there would remain a risk of reading sensitive
information and broadcasting it through a covert channel such as CPU usage.
To prevent bypassing this security measure, execution of SET SESSION
AUTHORIZATION and SET ROLE is now forbidden within a SECURITY DEFINER context.
Thanks to Itagaki Takahiro for reporting this vulnerability.
Security: CVE-2007-66001 parent 98f27aa commit eedb068
File tree
13 files changed
+237
-127
lines changed- doc/src/sgml/ref
- src
- backend
- access/transam
- catalog
- commands
- utils
- adt
- fmgr
- init
- include
13 files changed
+237
-127
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
| 34 | + | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| |||
89 | 89 | | |
90 | 90 | | |
91 | 91 | | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
92 | 97 | | |
93 | 98 | | |
94 | 99 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
| 30 | + | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | | - | |
| 41 | + | |
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| |||
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
67 | 76 | | |
68 | 77 | | |
69 | 78 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
104 | 104 | | |
105 | 105 | | |
106 | 106 | | |
107 | | - | |
108 | | - | |
| 107 | + | |
109 | 108 | | |
110 | 109 | | |
111 | 110 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
| 13 | + | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| |||
123 | 123 | | |
124 | 124 | | |
125 | 125 | | |
126 | | - | |
| 126 | + | |
| 127 | + | |
127 | 128 | | |
128 | 129 | | |
129 | 130 | | |
| |||
148 | 149 | | |
149 | 150 | | |
150 | 151 | | |
151 | | - | |
| 152 | + | |
| 153 | + | |
152 | 154 | | |
153 | 155 | | |
154 | 156 | | |
| |||
1490 | 1492 | | |
1491 | 1493 | | |
1492 | 1494 | | |
| 1495 | + | |
| 1496 | + | |
1493 | 1497 | | |
1494 | 1498 | | |
1495 | 1499 | | |
1496 | 1500 | | |
1497 | | - | |
1498 | | - | |
1499 | | - | |
1500 | | - | |
1501 | | - | |
1502 | | - | |
1503 | | - | |
1504 | | - | |
1505 | | - | |
| 1501 | + | |
| 1502 | + | |
| 1503 | + | |
1506 | 1504 | | |
1507 | 1505 | | |
1508 | 1506 | | |
| |||
1963 | 1961 | | |
1964 | 1962 | | |
1965 | 1963 | | |
1966 | | - | |
1967 | | - | |
1968 | | - | |
| 1964 | + | |
| 1965 | + | |
| 1966 | + | |
| 1967 | + | |
1969 | 1968 | | |
1970 | | - | |
1971 | | - | |
1972 | | - | |
1973 | | - | |
1974 | | - | |
| 1969 | + | |
| 1970 | + | |
| 1971 | + | |
1975 | 1972 | | |
1976 | | - | |
| 1973 | + | |
1977 | 1974 | | |
1978 | 1975 | | |
1979 | 1976 | | |
| |||
3806 | 3803 | | |
3807 | 3804 | | |
3808 | 3805 | | |
| 3806 | + | |
| 3807 | + | |
| 3808 | + | |
| 3809 | + | |
| 3810 | + | |
| 3811 | + | |
3809 | 3812 | | |
3810 | 3813 | | |
3811 | 3814 | | |
| |||
3858 | 3861 | | |
3859 | 3862 | | |
3860 | 3863 | | |
3861 | | - | |
3862 | | - | |
3863 | | - | |
3864 | | - | |
3865 | | - | |
3866 | | - | |
3867 | | - | |
3868 | | - | |
3869 | | - | |
3870 | | - | |
3871 | | - | |
3872 | | - | |
3873 | | - | |
3874 | | - | |
3875 | 3864 | | |
3876 | 3865 | | |
3877 | 3866 | | |
| |||
3926 | 3915 | | |
3927 | 3916 | | |
3928 | 3917 | | |
3929 | | - | |
3930 | | - | |
3931 | | - | |
3932 | | - | |
3933 | | - | |
3934 | | - | |
3935 | | - | |
3936 | 3918 | | |
3937 | 3919 | | |
3938 | 3920 | | |
| |||
3966 | 3948 | | |
3967 | 3949 | | |
3968 | 3950 | | |
3969 | | - | |
| 3951 | + | |
3970 | 3952 | | |
3971 | 3953 | | |
3972 | 3954 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| |||
1339 | 1339 | | |
1340 | 1340 | | |
1341 | 1341 | | |
| 1342 | + | |
| 1343 | + | |
1342 | 1344 | | |
1343 | 1345 | | |
1344 | 1346 | | |
| |||
1349 | 1351 | | |
1350 | 1352 | | |
1351 | 1353 | | |
| 1354 | + | |
| 1355 | + | |
| 1356 | + | |
| 1357 | + | |
| 1358 | + | |
| 1359 | + | |
| 1360 | + | |
1352 | 1361 | | |
1353 | 1362 | | |
1354 | 1363 | | |
| |||
1359 | 1368 | | |
1360 | 1369 | | |
1361 | 1370 | | |
| 1371 | + | |
| 1372 | + | |
| 1373 | + | |
1362 | 1374 | | |
1363 | 1375 | | |
1364 | 1376 | | |
| |||
1857 | 1869 | | |
1858 | 1870 | | |
1859 | 1871 | | |
| 1872 | + | |
| 1873 | + | |
1860 | 1874 | | |
1861 | 1875 | | |
1862 | 1876 | | |
| |||
1873 | 1887 | | |
1874 | 1888 | | |
1875 | 1889 | | |
| 1890 | + | |
| 1891 | + | |
| 1892 | + | |
| 1893 | + | |
| 1894 | + | |
| 1895 | + | |
| 1896 | + | |
1876 | 1897 | | |
1877 | 1898 | | |
1878 | 1899 | | |
| |||
1910 | 1931 | | |
1911 | 1932 | | |
1912 | 1933 | | |
| 1934 | + | |
| 1935 | + | |
| 1936 | + | |
1913 | 1937 | | |
1914 | 1938 | | |
1915 | 1939 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| |||
119 | 119 | | |
120 | 120 | | |
121 | 121 | | |
| 122 | + | |
| 123 | + | |
122 | 124 | | |
123 | 125 | | |
124 | 126 | | |
| |||
202 | 204 | | |
203 | 205 | | |
204 | 206 | | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
205 | 219 | | |
206 | 220 | | |
207 | 221 | | |
| |||
215 | 229 | | |
216 | 230 | | |
217 | 231 | | |
218 | | - | |
219 | | - | |
220 | | - | |
221 | | - | |
222 | | - | |
223 | 232 | | |
224 | 233 | | |
225 | 234 | | |
| |||
344 | 353 | | |
345 | 354 | | |
346 | 355 | | |
347 | | - | |
348 | | - | |
349 | | - | |
| 356 | + | |
350 | 357 | | |
351 | 358 | | |
352 | 359 | | |
| |||
466 | 473 | | |
467 | 474 | | |
468 | 475 | | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
469 | 479 | | |
470 | 480 | | |
471 | 481 | | |
| |||
498 | 508 | | |
499 | 509 | | |
500 | 510 | | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
501 | 514 | | |
502 | 515 | | |
503 | 516 | | |
| |||
0 commit comments