forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit87b2ebd
committed
Always require SELECT permission for ON CONFLICT DO UPDATE.
The update path of an INSERT ... ON CONFLICT DO UPDATE requires SELECTpermission on the columns of the arbiter index, but it failed to checkfor that in the case of an arbiter specified by constraint name.In addition, for a table with row level security enabled, it failed tocheck updated rows against the table's SELECT policies when the updatepath was taken (regardless of how the arbiter index was specified).Backpatch to 9.5 where ON CONFLICT DO UPDATE and RLS were introduced.Security:CVE-2017-150991 parentc66b438 commit87b2ebd
File tree
8 files changed
+194
-11
lines changed- src
- backend
- catalog
- parser
- rewrite
- include/catalog
- test/regress
- expected
- sql
8 files changed
+194
-11
lines changedLines changed: 98 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
805 | 805 |
| |
806 | 806 |
| |
807 | 807 |
| |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
| 825 | + | |
| 826 | + | |
| 827 | + | |
| 828 | + | |
| 829 | + | |
| 830 | + | |
| 831 | + | |
| 832 | + | |
| 833 | + | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
| 851 | + | |
| 852 | + | |
| 853 | + | |
| 854 | + | |
| 855 | + | |
| 856 | + | |
| 857 | + | |
| 858 | + | |
| 859 | + | |
| 860 | + | |
| 861 | + | |
| 862 | + | |
| 863 | + | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
| 867 | + | |
| 868 | + | |
| 869 | + | |
| 870 | + | |
| 871 | + | |
| 872 | + | |
| 873 | + | |
| 874 | + | |
| 875 | + | |
| 876 | + | |
| 877 | + | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
| 881 | + | |
| 882 | + | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
| 899 | + | |
| 900 | + | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
| 904 | + | |
| 905 | + | |
808 | 906 |
| |
809 | 907 |
| |
810 | 908 |
| |
|
Lines changed: 19 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
3164 | 3164 |
| |
3165 | 3165 |
| |
3166 | 3166 |
| |
| 3167 | + | |
| 3168 | + | |
| 3169 | + | |
| 3170 | + | |
| 3171 | + | |
| 3172 | + | |
3167 | 3173 |
| |
3168 |
| - | |
3169 |
| - | |
| 3174 | + | |
| 3175 | + | |
| 3176 | + | |
| 3177 | + | |
| 3178 | + | |
| 3179 | + | |
| 3180 | + | |
| 3181 | + | |
| 3182 | + | |
| 3183 | + | |
| 3184 | + | |
| 3185 | + | |
| 3186 | + | |
3170 | 3187 |
| |
3171 | 3188 |
| |
3172 | 3189 |
| |
|
Lines changed: 17 additions & 3 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
310 | 310 |
| |
311 | 311 |
| |
312 | 312 |
| |
| 313 | + | |
| 314 | + | |
313 | 315 |
| |
314 | 316 |
| |
315 | 317 |
| |
| |||
339 | 341 |
| |
340 | 342 |
| |
341 | 343 |
| |
342 |
| - | |
343 |
| - | |
344 |
| - | |
345 | 344 |
| |
346 | 345 |
| |
347 | 346 |
| |
| |||
362 | 361 |
| |
363 | 362 |
| |
364 | 363 |
| |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
365 | 379 |
| |
366 | 380 |
| |
367 | 381 |
| |
|
Lines changed: 2 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
69 | 69 |
| |
70 | 70 |
| |
71 | 71 |
| |
| 72 | + | |
| 73 | + | |
72 | 74 |
| |
73 | 75 |
| |
74 | 76 |
| |
|
Lines changed: 14 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
488 | 488 |
| |
489 | 489 |
| |
490 | 490 |
| |
491 |
| - | |
492 |
| - | |
| 491 | + | |
493 | 492 |
| |
494 | 493 |
| |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
495 | 507 |
| |
496 | 508 |
| |
497 | 509 |
| |
|
Lines changed: 14 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
3807 | 3807 |
| |
3808 | 3808 |
| |
3809 | 3809 |
| |
3810 |
| - | |
| 3810 | + | |
3811 | 3811 |
| |
3812 | 3812 |
| |
| 3813 | + | |
3813 | 3814 |
| |
3814 | 3815 |
| |
3815 | 3816 |
| |
| |||
3836 | 3837 |
| |
3837 | 3838 |
| |
3838 | 3839 |
| |
| 3840 | + | |
| 3841 | + | |
| 3842 | + | |
| 3843 | + | |
| 3844 | + | |
| 3845 | + | |
| 3846 | + | |
| 3847 | + | |
| 3848 | + | |
| 3849 | + | |
| 3850 | + | |
| 3851 | + | |
3839 | 3852 |
| |
3840 | 3853 |
| |
3841 | 3854 |
| |
|
Lines changed: 17 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
320 | 320 |
| |
321 | 321 |
| |
322 | 322 |
| |
| 323 | + | |
323 | 324 |
| |
324 |
| - | |
325 |
| - | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
326 | 341 |
| |
327 | 342 |
| |
328 | 343 |
| |
|
Lines changed: 13 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1674 | 1674 |
| |
1675 | 1675 |
| |
1676 | 1676 |
| |
1677 |
| - | |
| 1677 | + | |
1678 | 1678 |
| |
1679 | 1679 |
| |
1680 | 1680 |
| |
| 1681 | + | |
1681 | 1682 |
| |
1682 | 1683 |
| |
1683 | 1684 |
| |
| |||
1699 | 1700 |
| |
1700 | 1701 |
| |
1701 | 1702 |
| |
| 1703 | + | |
| 1704 | + | |
| 1705 | + | |
| 1706 | + | |
| 1707 | + | |
| 1708 | + | |
| 1709 | + | |
| 1710 | + | |
| 1711 | + | |
| 1712 | + | |
| 1713 | + | |
1702 | 1714 |
| |
1703 | 1715 |
| |
1704 | 1716 |
| |
|
0 commit comments
Comments
(0)