The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Уязвимость в PostgreSQL, позволяющая выполнить SQL-код с правами пользователя, запускающего pg_dump"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Уязвимость в PostgreSQL, позволяющая выполнить SQL-код с правами пользователя, запускающего pg_dump"  +/
Сообщение от opennews (??), 09-Авг-24, 12:44 
Сформированы корректирующие обновления для всех поддерживаемых веток PostgreSQL 16.4, 15.8, 14.13, 13.16, 12.20, в которых исправлено 56 ошибок, выявленных за последние три месяца. Среди прочего в новых версиях устранена уязвимость (CVE-2024-7348), помеченная как опасная (уровень опасности 8.8 из 10). Уязвимость вызвана состоянием гонки в утилите pg_dump, позволяющем атакующему, имеющему возможность создания  и удаления постоянных объектов в СУБД, добиться выполнения произвольного SQL-кода с правами пользователя, под которым запускается утилита pg_dump (обычно  pg_dump запускается с правами суперпользователя для резервного копирования СУБД)...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=61677

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (1), 09-Авг-24, 12:44   –7 +/
Интересно, сколько хомячков запускало постгрешный дамп на продакшене из под суперпользователя, не пользуясь специально создаваемым бекап пользователем?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #2, #3, #8

2. Сообщение от Аноним (2), 09-Авг-24, 12:53   +13 +/
Хах, вот же хомячки! Не ожидали наверное, что pg_dump внезапно начнет выполнять код, присланный из БД? Хах, выкусите, хомячки! <сарказм>
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #5

3. Сообщение от 1 (??), 09-Авг-24, 12:55   –1 +/
А разве не через pg_basebackup идёт бекапирование ?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #26, #27

5. Сообщение от Аноним (5), 09-Авг-24, 13:02   +1 +/
Хорошие годные параноики ждут такого поведения всегда и везде.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

8. Сообщение от Аноним (8), 09-Авг-24, 13:27   +4 +/
pg_dump на проде? Ох лол, кто ещё тут хомячок.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #11, #32, #36, #60

11. Сообщение от Аноним (5), 09-Авг-24, 13:37   +1 +/
Тут свидетель не лазать руками на прод.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #13

12. Сообщение от Аноним (12), 09-Авг-24, 13:49   –1 +/
Я, конечно, все понимаю, но...
Когда я там в последний раз запускал pg_dump? Ах да - никогда.
Запускать pg_dump при работающей базе? Чтобы что?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #16, #34

13. Сообщение от vvm13 (ok), 09-Авг-24, 13:50   +3 +/
pg_dump же не годится и не предназначен для создания бекапа базы на проде. Только для чего-то такого, что совсем не важное и не жалко. Можно ещё вспомнить про миграцию между версиями или архитектурами, но даже так дело очень редкое.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #21, #22, #37

16. Сообщение от vvm13 (ok), 09-Авг-24, 13:59   +1 +/
pg_dump internally executes SELECT statements.
pg_dump is used to transfer data to newer versions of PostgreSQL.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #17

17. Сообщение от Аноним (12), 09-Авг-24, 14:36   –3 +/
>pg_dump is used to transfer data to newer versions of PostgreSQL.

pg_upgrade же есть для этого:

$ /usr/pgsql-16/bin/pg_upgrade -b /usr/pgsql-13/bin/ -B /usr/pgsql-16/bin/ -d /var/lib/pgsql/13/data/ -D /var/lib/pgsql/16/data/ -o ' -c config_file=/var/lib/pgsql/13/data/postgresql.conf'  -O ' -c config_file=/var/lib/pgsql/16/data/postgresql.conf'

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #38

21. Сообщение от Аноним (21), 09-Авг-24, 15:20   –1 +/
Ты объясняешь это подкроватным админам, вершина карьеры которых - поднять nextcloud для бухов. Они даже не понимают о чем речь)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13

22. Сообщение от Аноним (5), 09-Авг-24, 15:20   +1 +/
Кроме миграций и бекапов на проде бывает много других интересных занятий.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #24

24. Сообщение от Аноним (21), 09-Авг-24, 15:29   +/
Я ж говорю не понимают))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

26. Сообщение от Аноним (1), 09-Авг-24, 16:01   +/
Можно и так и так, "в зависимости от", но где гарантии что и в нём нет какой нбиудь недосмотренной бяки?
😉
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

27. Сообщение от Аноним (1), 09-Авг-24, 16:08   +/
ну и для особо ушлых - проверь у себя, pg_basebackup не идет ли у тебя так же от суперпользователя, и если нет, настраивай через выдачу прав на репликации.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

28. Сообщение от Аноним (1), 09-Авг-24, 16:14   +/
Раз уж пошла такая пьянка, господа, кто что использует для резервного копирования с Pg:
1. pg_dump
2. pg_basebackup
3. различные виды репликации на бекап-негра.
4. что то упустил, типа ZFS\HAMMER снапшотов...
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #29, #33, #35, #52

29. Сообщение от Аноним (5), 09-Авг-24, 16:29   +1 +/
5. Какие ещё бекапы?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #31

31. Сообщение от Аноним (31), 09-Авг-24, 17:30   +/
6 pg barman
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29

32. Сообщение от User (??), 09-Авг-24, 17:40   +/
Это не хомячок, это суслик. Ты его не видишь - а он есть! Неподалеку от сурикатов, которые папку с базой тарят и кротов, которые в снапшот vm веруют...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8

33. Сообщение от User (??), 09-Авг-24, 17:44   +/
Тут интересней не "что используется для бэкапа", а "что используется для restore'a" не всего кластера целиком, а ну вот - отдельной базы в нем)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #44

34. Сообщение от Аноним (37), 09-Авг-24, 18:18   +/
> Запускать pg_dump при работающей базе? Чтобы что?

Чтобы получить слепок базы для бэкапа или клонирования. В чём проблема?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

35. Сообщение от Аноним (37), 09-Авг-24, 18:19   +/
pg_dump, конечно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28

36. Сообщение от Аноним (37), 09-Авг-24, 18:19   –1 +/
Почему нет-то? Только его и используем.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #40

37. Сообщение от Аноним (37), 09-Авг-24, 18:20   +3 +/
> pg_dump же не годится и не предназначен для создания бекапа базы на проде

Сам придумал? Годится и предназначен.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #39

38. Сообщение от Аноним (37), 09-Авг-24, 18:21   +/
Это дичь требующая ставить две версии постгреса и 2x места. Не нужно нам нахрен такого.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #53, #59

39. Сообщение от Аноним (21), 09-Авг-24, 18:54   –2 +/
Если нет задачи его потом восстановить, то конечно. Ты на собесе только такое не скажи, а то на этом он будет окончен моментально.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #42

40. Сообщение от Аноним (21), 09-Авг-24, 18:55   +/
Используем? Название конторы срочно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #41

41. Сообщение от Аноним (37), 09-Авг-24, 19:00   +2 +/
Не поверишь, postgrespro)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #54

42. Сообщение от Аноним (37), 09-Авг-24, 19:02   +3 +/
В чём проблема с восстановлением? У нас он регулярно восстанавливается на staging. Я вижу что ты очень сильно что-то нам хочешь сообщить про своё непонимание pg_dump, но у тебя плохо получается.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39 Ответы: #46

43. Сообщение от Анонимemail (43), 09-Авг-24, 19:06   –1 +/
Постгрес.
Отследить, маняпуляйции, Луна в Сатурне.
Понятно. Теоретическая возможность на верирарной СУБД.
Ок, да.
Ответить | Правка | Наверх | Cообщить модератору

44. Сообщение от Аноним (1), 09-Авг-24, 19:24   +/
Ну если ты делаешь целиком basebackup, то как ты собираешься restore одной базы?
Сам себе злобный буратина?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33 Ответы: #47

45. Сообщение от QULISA (?), 09-Авг-24, 19:34   –1 +/
Лучший способ сделать бекап
Ответить | Правка | Наверх | Cообщить модератору

46. Сообщение от Аноним (1), 09-Авг-24, 19:49   +1 +/
Возможно он начитался статей каких нибудь гениев на гипотетическом хабре,
о кривизне бекапов, например баз 1с находящихся в работе онлайн,
не вникая в суть - когда и как можно и нужно использовать pg_dump
и какие условия для этого необходимо соблюсти для консистентности данных.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42

47. Сообщение от User (??), 09-Авг-24, 19:59   +/
> Ну если ты делаешь целиком basebackup, то как ты собираешься restore одной
> базы?
> Сам себе злобный буратина?

Ух, лапа - сколько же замечательных открытий ожидает тебя при чтении документации... Но чот боюсь - не дождутся.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #48, #49

48. Сообщение от Аноним (21), 09-Авг-24, 22:07   +/
Какой документации? Максимум, что читает киса это "как зделоть бэкап nextcloud на руспбери" на яндекс.дзене.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47

49. Сообщение от Аноним (1), 09-Авг-24, 22:44   +/
Ты прав, сам я такого не нашел.
Итак, у нас есть бекап-архив (ну или директория) сделанная через pg_basebackup с дефолтового таблспейса.
Как же восстановить только одну отдельную базу 1с из десятка\сотни забекапированных, не разворачивая их все в соседний инстанс?
Ты же знаешь, не правда ли, иначе бы не язвил.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47 Ответы: #50

50. Сообщение от User (??), 10-Авг-24, 12:48   +1 +/
> Ты прав, сам я такого не нашел.
> Итак, у нас есть бекап-архив (ну или директория) сделанная через pg_basebackup с
> дефолтового таблспейса.
> Как же восстановить только одну отдельную базу 1с из десятка\сотни забекапированных, не
> разворачивая их все в соседний инстанс?
> Ты же знаешь, не правда ли, иначе бы не язвил.

Use pg_probackup или pgbackrest, Luke!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49 Ответы: #51

51. Сообщение от Аноним (1), 10-Авг-24, 13:02   +/
Ну, как бы на русском было написано:
"сделанная через pg_basebackup"...
перечитай https://www.opennet.me/openforum/vsluhforumID3/134512.html#44 и https://www.opennet.me/openforum/vsluhforumID3/134512.html#47
Если хочешь, замнем для ясности. (А так то я могу и Barman пользовать, и любую другую внешнюю тулзу.)

Вопрос, в том, что если ты делаешь бекап базы (например 1с) через pg_probackup, ты уверен, что в сохраненном тобой бекапе окажутся все данные баз?
Самое простое - как мы помним, права доступа к указанной базе и хранение Tablespace вынесены на уровень кластера, что, как мы понимаем, несколько выше, чем таблички сданными и индексы.
Вопрос - pg_probackup корректно их архивирует (и, естественно, восстанавливает)?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50 Ответы: #55

52. Сообщение от Аноним (52), 10-Авг-24, 14:10   +/
Для физического бэкапа (который нужен исключительно как бэкап) - pg_basebackup с hot standby.

Для логического бэкапа (когда может понадобиться поднять на другой версии, дампить только часть, погрепать, в конце концов, чтобы найти, в каком дампе удаленные данные) - pg_dump со слейва.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28

53. Сообщение от 312 (?), 10-Авг-24, 14:51   +/
Оно же хардлинками умеет, и не займет x2 места
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #57

54. Сообщение от Я (??), 10-Авг-24, 16:57   +/
А как же пгпробэкап??
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41

55. Сообщение от User (??), 10-Авг-24, 22:18   +/
> Ну, как бы на русском было написано:
> "сделанная через pg_basebackup"...
> перечитай https://www.opennet.me/openforum/vsluhforumID3/134512.html#44 и https://www.opennet.me/openforum/vsluhforumID3/134512.html#47

Ну как бы на русском было написано - "кто что использует для restore'а одиночной базы в инстансе\кластере" -  basebackup, который для этой цели не то, чтобы подходит - притащили уже вы.  

> Если хочешь, замнем для ясности. (А так то я могу и Barman
> пользовать, и любую другую внешнюю тулзу.)

Эм, да - но нет. В смысле, если я ничего не путаю - то barman partial restore как раз таки и не.
Вот такая у нас замечательная субд - надежная, как швейцарские часы. Можно сделать дамп (который - нифига не бэкап in general - ну или очень-очень хреновый backup) отдельной бд - и иногда можно его даже восстановить. Правда - оказывается, есть риск поисполнять при этом чужой код. Можно вот сделать бэкап... всего сервера, с возможностью исключить при восстановлении ненужные базы... с нюансами в виде необходимости чтения всего бэкапа целиком, что, разумеется, аффектит RTO. Ну и можно вот по базе на инстанс распихать - с соответствующими накладными.
А других СУБД у меня для вас\нас не осталось :)

> Вопрос, в том, что если ты делаешь бекап базы (например 1с) через
> pg_probackup, ты уверен, что в сохраненном тобой бекапе окажутся все данные
> баз?

Эм, да. Но опять же - с нюансами. Есть поле для хорошо так "облажаццо".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51 Ответы: #56

56. Сообщение от Аноним (1), 10-Авг-24, 23:33   +/
Ну, я притащил (как гипотетическую задачу), а вы подхватили...
Но спасибо за (не релевантный) ответ.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55

57. Сообщение от Аноним (57), 11-Авг-24, 15:22   +/
Но от двух версий сразу все равно не уйти, если применяется хоть одно расширение.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53

58. Сообщение от Rollo99email (ok), 11-Авг-24, 23:42   +/
Анонимы, которые НИКОГДА не используют pg_dump, расскажите секрет, как вы восстанавливаете только одну БД на дату или момент времени на том же или другом кластере с несколькими БД без его остановки?

imho, если и есть такие "волшебные" инструменты решающие эту задачу, то они используют pg_dump под капотом.

Ответить | Правка | Наверх | Cообщить модератору

59. Сообщение от Аноним (12), 12-Авг-24, 10:18   +/
>Это дичь требующая ставить две версии постгреса и 2x места.

Ну а в чем проблема? В вашем любимом Slackware так нельзя без танцев с бубном? В RHEL колнах с этим никаких заморочек нет, и одинаковые экстеншены к разным версиям Postgres поставить через dnf тоже можно.
Поставил новую версию, запустил pg_upgrade, проверил что все хорошо, удалил старый Postgres и его данные (если копировал, а не хардлинками).

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38

60. Сообщение от Ныряние со штангой (?), 13-Авг-24, 10:37   +/
https://docs.gitlab.com/ee/administration/backup_restore/#da...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру