The OpenNET Project / Index page

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



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

"Локальная root-увизгвимость в PHP-FPM "  +/
Сообщение от opennews (??), 28-Окт-21, 18:44 
В PHP-FPM, менеджере процессов FastCGI, входящем в основную поставку PHP начиная с ветки 5.3, выявлена критическая уязвимость CVE-2021-21703, дающая возможность непривилегированному пользователю хостинга выполнить код с правами root. Проблема проявляется на серверах, использующих для организации запуска PHP-скриптов PHP-FPM, обычно применяемый в связке с Nginx. Выявившие проблему исследователи смогли подготовить рабочий прототип эксплоита...

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

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

Оглавление

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

5. Сообщение от Sherry Birkin (?), 28-Окт-21, 18:55   –16 +/
А я говорил, ставьте Apache2!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #7, #29, #50

7. Сообщение от srgazh (ok), 28-Окт-21, 18:57   +8 +/
Там таких новостей еще более
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #28

9. Сообщение от Аноним (9), 28-Окт-21, 19:01   +1 +/
>Примечательно, что разработчики PHP были уведомлены о проблеме ещё в мае, но не спешили с подготовкой исправления.

Интересно чего они ждали?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #10, #17, #18, #21, #26

10. Сообщение от Sw00p aka Jerom (?), 28-Окт-21, 19:08   +5 +/
хорошо хоть за уязвимость восприняли :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #13

11. Сообщение от pashev.me (?), 28-Окт-21, 19:17   +/
Ещё один пример того, что "должно работать" и "работает" - это не одно и тоже.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #31

12. Сообщение от Аноним (12), 28-Окт-21, 19:23   –1 +/
>Основной процесс PHP-FPM, координирующий работу, запускается с правами root

Это очень умное решение.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #24, #76

13. Сообщение от Аноним (13), 28-Окт-21, 19:34   +2 +/
После того как визг подняли и признали
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

14. Сообщение от Рева RarogCmex Денисemail (?), 28-Окт-21, 19:38   –3 +/
Вовремя я избавился от php на своём личном сервере.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #30, #37

15. Сообщение от YetAnotherOnanym (ok), 28-Окт-21, 19:49   +4 +/
А термин "увизгвимость" в html title страницы - это редактор так прикололся?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #16, #19, #23

16. Сообщение от Аноним (16), 28-Окт-21, 19:52   +1 +/
Это опеннет написан на перле. Старое не отредактированное значение всегда остаётся в заголовке страницы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #20, #55

17. Сообщение от Аноним (17), 28-Окт-21, 19:58   +2 +/
Им некогда, они смузи фичи пилят.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #33

18. Сообщение от Аноним (18), 28-Окт-21, 20:05   +/
С дивана долго поднимались
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

19. Сообщение от Аноним (19), 28-Окт-21, 20:09   –1 +/
Кому-то видимо особо нравятся свиньи.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #58

20. Сообщение от Аноним (20), 28-Окт-21, 20:26   +/
Задумался над тем, что когда-нибудь на Opennet появится (а может уже была) новость про уязвимость, через которую можно будет сломать его самого :) С подробным разъяснением и ссылкой на эксплойты. Хорошее оформление новости это не всегда хорошо :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16

21. Сообщение от QwertyReg (ok), 28-Окт-21, 20:31   –10 +/
А чего ждать от мёртвого языка-то?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #49

23. Сообщение от Аноним84701 (ok), 28-Окт-21, 20:52   +1 +/
> А термин "увизгвимость" в html title страницы - это редактор так прикололся?

См под новостью: "Наводку на новость прислал пох."

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

24. Сообщение от пох. (?), 28-Окт-21, 21:24   +2 +/
это юникс, тебе не понять, вчерародившийся.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

25. Сообщение от пох. (?), 28-Окт-21, 21:25   +/
ну я ж нечаянно...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #27

26. Сообщение от пох. (?), 28-Окт-21, 21:29   +3 +/
там эксплойт довольно нетривиален и негарантированно сработает (в идеале надо чтоб на сервере ты был единственным клиентом). Причем в любом случае требует возможности исполнять php код (что, в свете всяких eval и нескучных форматов файлов, исполняемых при попытке проверить существование, конечно, тоже не бином ньютона), т.е. это именно локальная уязвимость. А если у вас на сервере где исполняется пехепе есть еще чего взять кроме самого пехепе именно от того юзера которым он и запущен - то у меня для вас хреновая новость...

Поэтому исправлять полезли, когда авторы пригрозили выпустить его in the wild, предварительно раскошелившись на детальное описание как эту багофичу таки можно поэксплойтить.

То есть визгу на самом деле было больше чем проблема заслуживает, но таки все же - дырень.
Надо переписать на сами знаете чем!

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

27. Сообщение от Аноним (31), 28-Окт-21, 21:33   +/
Вот кто-кто, а вот конкретно ты мог и специально)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

28. Сообщение от пох. (?), 28-Окт-21, 21:40   +/
именно такая ровно одна (в смысле, об ту же проблему)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

29. Сообщение от Онаним (?), 28-Окт-21, 21:42   –2 +/
А вот да, костылинг костылей в виде FPM такой костылинг.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #48

30. Сообщение от Онаним (?), 28-Окт-21, 21:44   +8 +/
Лучше сразу от сервера. Нет сервера - нет уязвимостей.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

31. Сообщение от Аноним (31), 28-Окт-21, 21:47   +1 +/
Компилируется значит работает (с)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

32. Сообщение от Онаним (?), 28-Окт-21, 21:50   +/
Вообще шанс эксплуатации этого дела околонулевой - надо пробить код (кто-то юзает FPM для untrusted code? ссзб), дальше надо трахаться с пробитием sandbox, дальше надо трахаться с тем, чтобы выйти на rce...

Но тем не менее дыра злобно злая, хорошо что таки заткнули.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #35, #67

33. Сообщение от Онаним (?), 28-Окт-21, 21:51   +1 +/
Ни хрена не смузи. В 8.1 будут Fibers - это просто очешуенчик.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #36

34. Сообщение от Онаним (?), 28-Окт-21, 21:53   –1 +/
И да, плять, я только что собрал 7.3.31 для проекта с FPM... Теперь надо собирать и тестить 7.3.32. Хорошо, что в прод ещё не ушло, притормозить не поздно.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #38, #44

35. Сообщение от пох. (?), 28-Окт-21, 22:06   –1 +/
Ну в нескучном язычке, способном выполнить файл при попытке проверить его существование - таки это не нерешаемая задача. То есть эксплойт придется переделывать под конкретный кривой плагин конкретной  супер-cms, но в принципе почти у каждого что-то такое можно найти, если хорошо поискать.

Т.е. жить с такой дырой все же не стоит.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #40, #41, #42

36. Сообщение от eee (??), 28-Окт-21, 22:25   +/
"очешуенчик" - wtf ОнаниZм?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33

37. Сообщение от Аноним (37), 28-Окт-21, 22:27   +/
И чем теперь пробавляемся?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

38. Сообщение от пох. (?), 28-Окт-21, 22:41   +/
нам бы ваши проблемы (исправляет .14 на .25)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34

39. Сообщение от Аноним (39), 28-Окт-21, 23:22   +/
Забавно - в комментах пишут про мертвый язык или нескучный язык, а уязвимость в fpm_children.c  
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #51

40. Сообщение от Онаним (?), 29-Окт-21, 00:05   +/
Для этого, правда, тот файл надо ещё загрузить, да так, чтобы с нужным расширением, и при проверке существования надо phar:// в начало имени подставить, ну да ладно. Тут проблема не в бобине, короче.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

41. Сообщение от Онаним (?), 29-Окт-21, 00:06   +/
У этих ребят до сих пор eval()'ы в коде, чего вы от них хотели-то? Там завтра файл будет выполняться без существования, и никто не удивится.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

42. Сообщение от Онаним (?), 29-Окт-21, 00:07   +/
(мысль по древу к тому, что PHP тут вообще сбоку пришёлся, дай им баш - так они и там уязвимость сделают)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35 Ответы: #43

43. Сообщение от пох. (?), 29-Окт-21, 00:13   –1 +/
баш - это вот та самая фигня, которая по нажатию tab исполняла внезапно код? Ну да, ну да...

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

44. Сообщение от kissmyass (?), 29-Окт-21, 00:13   –1 +/
да ни на что не повлияет, понятно что не есть это хорошо, но ничего реально критичного не произойдет, если это не шареный хостинг (но эти ССЗБ, если даже на дешманский VPS денег жмут)

ну получил ты рута и что? в твоем php приложении крутится какой-то вредоносный код? нет... т.е. ты от рута ничего не сделал плохого, да это чревато в совокупности с другими дырами, но не более.

повышение локальных привелегий при наличии возможности выполнять любой код можно всегда попытаться осуществить с использованием row-hammer, а большинство проектов ECC память не используют, даже с Xeon процессорами, нонсенс, но факт (я посмотрел сервера доступные на аукционах, т.е. таких еще тысячами используется по всему миру), исключение составляют большие сервера с регистровой памятью, инстансы по 300+ вечнозеленых.

в общем как бы очень плохо, но несмертельно само по себе

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

45. Сообщение от Онаним (?), 29-Окт-21, 00:35   –1 +/
На шаредах FPM - это угрё... утопи... нонсенс в общем :D
Насчёт ECC яхз, ECC память стоит не сильно дороже обычной по факту ныне.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #46

46. Сообщение от kissmyass (?), 29-Окт-21, 01:13   –1 +/
> На шаредах FPM - это угрё... утопи... нонсенс в общем :D
> Насчёт ECC яхз, ECC память стоит не сильно дороже обычной по факту
> ныне.

так они в новости пишут что с какой-то версии это часть PHP, а не просто отдельный компонент

> Уязвимость проявляется начиная с версии PHP 5.3.7, в которую был интегрирован PHP-FPM.

--

если регистровая так еще и дешевле, больше цена зависит от размера модуля, сильно крупные модули сильно дороже даже регистровые

но суть это не меняем, установка ECC в дедикейтед всё еще опция у многих ISP

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

47. Сообщение от gogo (?), 29-Окт-21, 02:48   +/
> Основные дистрибутивы выпустили обновления пакетов с устранением уязвимости

у RHEL статус CVE - New. Нифига они не выпустили. Ещё конь не валялся...

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

48. Сообщение от Аноним (48), 29-Окт-21, 03:19   +/
Просто кто-то не осилил парсинг в свое время HTTP и изобрел целый зоопарк этих CGI протоколов
Теперь даже стыдно на это все смотреть - когда в любом Golang, Java, Ruby реалзованы полноценные асинхронные сервера с бешеной производительностью

С другой стороны популярность и шаблонность всегда удобнее и проще - много специаистов можно найти

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

49. Сообщение от Аноним (48), 29-Окт-21, 03:21   –1 +/
Живее всех живых строят и строят из этого говна и палок сайты и сегодня
Плнятное дело что доверить строительство ком то на пионерском языке это страшно
И надо еще обладать опредеелнными уровнем развития что бы понять что тебе сделали
с другой стороны кто не первый год в отрасли (всякие там аутсорсеры) те то знают
кому и что предлагать и за какие деньги - так что язык удел малого бзнеса
там ему и место
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

50. Сообщение от Аноним (50), 29-Окт-21, 04:20   +1 +/
А я говорил, не позволяйте запускать произвольный код!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

51. Сообщение от Аноним (51), 29-Окт-21, 05:05   +/
Уязвимость вызвана сохранением указателей в область разделяемой памяти (scoreboard), применяемой для организации взаимодействия между дочерним и родительским процессом PHP-FPM.

Общая память к языку программирования не имеет отношения.

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

52. Сообщение от Аноним (52), 29-Окт-21, 05:14   +/
А кто мешает запускать php-fpm не под root-ом?

  name                    user
php-fpm             php-fpm(not root)
    |- php-fpm      php-fpm(not root)
    |- php-fpm      php-fpm(not root)

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #54, #70, #75

53. Сообщение от Какаянахренразница (ok), 29-Окт-21, 06:28   +/
Пойти, что ли, выполнить код с правами root из-под непривилегированного пользователя на хостинге... Хотя, кого я хакаю -- я сам себе хостер и мне нахрен не вср*лась эта уязвимость.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #77

54. Сообщение от Нанобот (ok), 29-Окт-21, 08:38   +1 +/
У сабжа одна из ключевых фич - запуск рабочих процессов от других пользователей (ability to start workers with different uid/gid/chroot/environment), для нее нужны права рут.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52 Ответы: #74

55. Сообщение от Аноним (55), 29-Окт-21, 09:31   +1 +/
> Это опеннет написан на перле. Старое не отредактированное значение всегда остаётся в заголовке страницы.

И при чем тут Perl ?

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

56. Сообщение от FSA (??), 29-Окт-21, 10:22   +/
А ещё эксплуатация может быть осложнена изоляцией в контейнере или подсистемой безопасности, типа SELinux или AppArmor.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26

57. Сообщение от тигар.логиниться.лень (?), 29-Окт-21, 10:39   –1 +/
действительно. о мертвых либо хорошо, либо вообще никак.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55

58. Сообщение от suffix (ok), 29-Окт-21, 11:45   +/
Мне нравятся и что здесь плохого ?

https://www.babai.ru

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

59. Сообщение от Ornlo (ok), 29-Окт-21, 13:29   +/
Свиньи они миленькие когда маленькие, у тебя есть ручные свинки? (а ещё я люблю бекон и сало, кстати)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58 Ответы: #60

60. Сообщение от suffix (ok), 29-Окт-21, 13:36   +/

> я люблю бекон и сало

Сами-то как думаете - который Вы по счёту в такой шутке в мой адрес ? (подсказка - в числе уже больше четырёх нулей)  !

:))))

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

61. Сообщение от Ornlo (ok), 29-Окт-21, 14:11   +/
>> я люблю бекон и сало
> Сами-то как думаете - который Вы по счёту в такой шутке в мой адрес ?

А про Укpaинy кто-то уже шутил?


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

62. Сообщение от suffix (ok), 29-Окт-21, 14:15   +/

> А про Укpaинy кто-то уже шутил?

всего лишь число с тремя нулями на конце - место в очереди :)))

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

67. Сообщение от Аноним (67), 29-Окт-21, 17:04   +/
Это по всяким шаредам типа GoDaddy может ударить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #68

68. Сообщение от Онаним (?), 29-Окт-21, 20:07   +/
FPM на шаредах - это редкое извращение.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67

69. Сообщение от Онаним (?), 29-Окт-21, 20:07   +/
На самом деле отдельный бинарник.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46

70. Сообщение от lindevel (ok), 29-Окт-21, 21:35   +/
Дякую, я й не знав, що так можна
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52

72. Сообщение от Аноним (72), 29-Окт-21, 22:25   +/
https://reactphp.org/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48

73. Сообщение от Аноним (52), 29-Окт-21, 22:31   +/
В systemd возможно запустить php-fpm(main process) не от root, также включить всякую там защиту и т.д. Просто надо научиться читать документацию. Порты в firewall перенаправить выше 1000, также nginx должен работать под своим user-ом и не иметь доступ даже на чтение php файлов. Нужно понять, что бесплатно никто не даст гарантии безопасности, именно сейчас, может в будущем люди станут мудрее..........
Ответить | Правка | Наверх | Cообщить модератору

74. Сообщение от Аноним (52), 29-Окт-21, 22:54   +/
В systemd возможно запустить php-fpm(main process) не от root, также включить всякую там защиту и т.д. Просто надо научиться читать документацию. Порты в firewall перенаправить выше 1000, также nginx должен работать под своим user-ом и не иметь доступ даже на чтение php файлов. Нужно понять, что бесплатно никто не даст гарантии безопасности, именно сейчас, может в будущем люди станут мудрее..........
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54

75. Сообщение от SubGun (??), 30-Окт-21, 01:06   +/
Лень мешает. Люди настолько обленились, что хотят безопасности по дефолту. БД открыта наружу - виноват не админ сервера, а разработчик, который не делает по-умолчанию бинд на локалхост. Так же и тут.
Эпоха докера еще больше развратила людей. Бездумно ставят дефолтный образ и не видят в этом проблемы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52

76. Сообщение от Ananimasss (?), 30-Окт-21, 10:57   +/
Есть варианты как еще забиндить порт ниже 1024 и запускать чайлдов под другим юзером?
Обязательно расскажи.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #80, #83

77. Сообщение от Онаним (?), 30-Окт-21, 14:50   +/
На хостингах обычно нет FPM, забудьте.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53 Ответы: #78

78. Сообщение от Какаянахренразница (ok), 31-Окт-21, 20:32   +/
> На хостингах обычно нет FPM, забудьте.

Обычно на моём хостинге есть PHP-FPM, ибо я сам его туда поставил.

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

79. Сообщение от Онаним (?), 31-Окт-21, 22:30   +/
А, ну сочувствую.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78

80. Сообщение от yurikoles (ok), 31-Окт-21, 23:17   +1 +/
Чта? В 99.99% случаев он работает на той же машине, что и NGINX, с которым они общаются либо через локальный сокет, либо через localhost:9000. Т.е. ему привилегированные порты в принципе не нужны.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76

83. Сообщение от notroot (??), 19-Ноя-21, 15:43   +/
Есть: CAP_NET_BIND_SERVICE. Насчет ограничения setuid/setgid с ходу не понял, надо разбираться. "Наихудший" вариант: разрешать неограниченный setuid, но зарубленный доступ ко всему через эти же capabilities.

Начать можно с "Linux Capabilities in a nutshell", но лучше с английского языка и системного подхода к обучению.

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


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

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




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

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