LINUX.ORG.RU

В ядре Linux обнаружена критическая уязвимость

 , , ,


1

2

В январе 2014 года разработчик Daniel Borkmann обнаружил и устранил уязвимость в ядре Linux, позволявшую удалённо осуществить повреждение стека и выполнить произвольный код с привилегиями ядра. Уязвимость находилась в файле net/netfilter/nf_conntrack_proto_dccp.c, относящемся к подсистеме conntrack, а конкретно, в коде функций «dccp_new()», «dccp_packet()», и «dccp_error()», обрабатывающих данные, поступающие по протоколу DCCP.

В минувший вторник уязвимость была официально признана критической, получив код CVE-2014-2523. Патч, устраняющий проблему, войдет в ядро Linux 3.14. Дополнительно отмечается, что уязвимость существует в ядре, как минимум, с версии 2.6.32 (по некоторым сведениям, с 2.6.26), и оставалась незамеченной на протяжении 4 лет.

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

anonymous

Проверено: Shaman007 ()

Ответ на: комментарий от Kompilainenn
cat /boot/config-3.8.0-35-generic | grep CONFIG_IP_DCCP
CONFIG_IP_DCCP=m
# CONFIG_IP_DCCP_CCID2_DEBUG is not set
# CONFIG_IP_DCCP_CCID3 is not set
# CONFIG_IP_DCCP_DEBUG is not set

ахтунг, сисьтемко опасносте!!111

(в каких случаях загружается этот модуль? что это вообще?)

I-Love-Microsoft ★★★★★ ()
lsmod | grep dccp | wc -l
0

Тем не менее, заставляет задуматься. Возможно, стоит отключать в raw conntrack для всех протоколов, кроме используемых:

iptables -t raw -A PREROUTING -p udp -j ACCEPT
iptables -t raw -A PREROUTING -p tcp -j ACCEPT
iptables -t raw -A PREROUTING -p icmp -j ACCEPT
iptables -t raw -A PREROUTING -p ah -j ACCEPT
iptables -t raw -A PREROUTING -p esp -j ACCEPT
iptables -t raw -A PREROUTING -j NOTRACK
selivan ★★★ ()
zgrep -i dccp /proc/config.gz 
CONFIG_NF_CT_PROTO_DCCP=m
CONFIG_NF_NAT_PROTO_DCCP=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m
CONFIG_IP_DCCP=m
CONFIG_INET_DCCP_DIAG=m
# DCCP CCIDs Configuration
# CONFIG_IP_DCCP_CCID2_DEBUG is not set
CONFIG_IP_DCCP_CCID3=y
# CONFIG_IP_DCCP_CCID3_DEBUG is not set
CONFIG_IP_DCCP_TFRC_LIB=y
# DCCP Kernel Hacking
# CONFIG_IP_DCCP_DEBUG is not set
CONFIG_NET_DCCPPROBE=m

есть или нет? :)

kiotoze ★★★★ ()
Linux Core 3.12.4-pf #1 SMP PREEMPT Tue Feb 25 17:06:17 EET 2014 x86_64 GNU/Linux

cat /boot/config-3.8.0-19-generic |grep DCCP
CONFIG_NF_CT_PROTO_DCCP=m
CONFIG_NF_NAT_PROTO_DCCP=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m
CONFIG_IP_DCCP=m
CONFIG_INET_DCCP_DIAG=m
# DCCP CCIDs Configuration (EXPERIMENTAL)
# CONFIG_IP_DCCP_CCID2_DEBUG is not set
# CONFIG_IP_DCCP_CCID3 is not set
# DCCP Kernel Hacking
# CONFIG_IP_DCCP_DEBUG is not set
CONFIG_NET_DCCPPROBE=m 

Арчуха.

Беда -.-

Есть фастфикс ?

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

Может выкатят. А может придётся самому собрать ядро.

mahalaka ★★ ()

А я вот так и не понял до конца - этот модуль сам по себе может загрузиться? Или только если специально iptables'ом его потрогать?

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

Не лишний. Я тоже так ищу: удобнее набрать имя файла автодополнением, и потом вставить искомое из буфера обмена. Когда надо искать следующую строку - проще стереть символы в конце строки, чем в середине, потому что не надо дёргать курсов, что особенно неприятно, когда строка длинная.

selivan ★★★ ()

идиоты, проверяющие наличие модуля dccp, идите лечитесь. уязвимость в нетфильтере. нетфильтер у вас есть и загружен? значит, система уязвима.

val-amart ★★★★★ ()

zgrep -i dccp /proc/config.gz
# CONFIG_NF_CT_PROTO_DCCP is not set
CONFIG_NETFILTER_XT_MATCH_DCCP=m
# CONFIG_IP_DCCP is not set
Оно?

Satou ★★★★ ()

Я поэтому своё ядро предпочитаю с подписями и grsecurity.

steemandlinux ★★★★★ ()
Ответ на: комментарий от val-amart

нетфильтер у вас есть и загружен? значит, система уязвима

Интересно почитать про способы использования уязвимости в функции dccp_new из модуля nf_conntrack_proto_dccp.ko при не загруженном модуле.

redgremlin ★★★★★ ()
Ответ на: комментарий от val-amart

То есть, в отличие от всяких nf_conntrack_ftp, nf_conntrack_irc и прочих, nf_conntrack_proto_dccp загрузится автоматом при получении пакета с соотв. протоколом?

selivan ★★★ ()

Я думал что это ужу опять теги правит. Оказалось новость-то сегодняшняя. :D

imul ★★★★★ ()
Ответ на: Re: Да, Джо :) от anonymous

Это кошка Шредингера, расслабься, анон

Twissel ★★★★★ ()

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

modprobe nf_conntrack_proto_dccp nf_nat_proto_dccp echo 1 > /proc/sys/net/ipv4/ip_forward

Потом можете паниковать.

anonymous ()

Proof of concept есть? Сходил по ссылке на подробности, нашел только 404 вместо CVE-2014-2523.

dexpl ★★★★★ ()

и оставалась незамеченной на протяжении 4 лет.

как страшно жить.

splinter ★★★★★ ()

А я то думаю, кто это по ночам мне в хомяк ехе-шники подкладывает.

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

у всех так

Да нет.

host:/home/user # zgrep -i dccp /proc/config.gz
CONFIG_NF_CT_PROTO_DCCP=m
CONFIG_NF_NAT_PROTO_DCCP=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m
CONFIG_IP_DCCP=m
CONFIG_INET_DCCP_DIAG=m
# DCCP CCIDs Configuration
# CONFIG_IP_DCCP_CCID2_DEBUG is not set
CONFIG_IP_DCCP_CCID3=y
# CONFIG_IP_DCCP_CCID3_DEBUG is not set
CONFIG_IP_DCCP_TFRC_LIB=y
# DCCP Kernel Hacking
# CONFIG_IP_DCCP_DEBUG is not set
# CONFIG_NET_DCCPPROBE is not set
Однако
host:/home/user # lsmod|grep -i dccp
host:/home/user # 

Csandriel ()

mittorn@mittorn-desktop ~ $ zgrep -i dccp /proc/config.gz
# CONFIG_IP_DCCP is not set

mittorn ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

DCCP provides a way to gain access to congestion control mechanisms without having to implement them at the application layer. It allows for flow-based semantics like in Transmission Control Protocol (TCP), but does not provide reliable in-order delivery. Sequenced delivery within multiple streams as in the Stream Control Transmission Protocol (SCTP) is not available in DCCP.

Попробую косплеить гуглтранслейт: Обеспечивает возможность досупа к механизму контроля опухолей (скоплений траффика) без необходимости реализации отдельным программным слоем. Допускает поточную семантику, как TCP, но не обеспечивает удобной доставки-в-очередности. Последовательная доставка в несколько потоков, как в SCTP, не доступна в DCCP

DCCP is useful for applications with timing constraints on the delivery of data. Such applications include streaming media, multiplayer online games and Internet telephony.

DCCP полезен для приложений с ограничениями по сроку доставки данных, как поточное медиа, мультиплеер игры, интернет-телефония

Csandriel ()

А не через него ли у меня какие-то сервисы яндекса в firefox залезли?

mittorn ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

У меня этого модуля нет:) Так-что меня это не касается.

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

Всё равно ты ядроконпеляльщик и потому школьник.

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

Работа над ошибками:

Обеспечивает возможность досупа к механизму контроля отеков(скоплений траффика)

а также

без необходимости реализации на программном уровне.

«It allows for flow-based semantics» — оставим как было корявым, все равно явно ничего важного.

Csandriel ()

а в арчике то оно модулем...


[fjfalcon@laptop ~]$ zgrep -i dccp /proc/config.gz 
CONFIG_NF_CT_PROTO_DCCP=m
CONFIG_NF_NAT_PROTO_DCCP=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m
CONFIG_IP_DCCP=m
CONFIG_INET_DCCP_DIAG=m
# DCCP CCIDs Configuration
# CONFIG_IP_DCCP_CCID2_DEBUG is not set
CONFIG_IP_DCCP_CCID3=y
# CONFIG_IP_DCCP_CCID3_DEBUG is not set
CONFIG_IP_DCCP_TFRC_LIB=y
# DCCP Kernel Hacking
# CONFIG_IP_DCCP_DEBUG is not set
CONFIG_NET_DCCPPROBE=m
[fjfalcon@laptop ~]$ 
fjfalcon ★★★ ()
Ответ на: комментарий от I-Love-Microsoft

А, ясно, экзотический протокол примерно типа SCTP.

Обнаружена уязвимость в ненужности которая не нужна четыре года как. ^_^

Csandriel ()
Ответ на: комментарий от kas501

Я до сих пор помню, как радовался 0-day эксплойту когда забыл root пароль от vps, на которую не заходил 2 года... и других методов получения рут доступа к данной машине не было...

fjfalcon ★★★ ()
Ответ на: комментарий от val-amart

Не-не-не...

... не совсем так. Это конечно касается conntrack, но специфичного для dccp. Либо пересобрать ядро и отрубить его (nf_conntrack_proto_dccp) там, либо вырубить приём/отправку dccp через iptables:

iptables -t raw -I PREROUTING -p dccp -j NOTRACK

И:

iptables -t raw -I OUTPUT -p dccp -j NOTRACK

И да, мне непонятно с какого перепою использовать не пересобранное ядро для конкретной машины с конкретными задачами? Но это уже «линуксоиды XXIв.» и вопрос можно считать риторическим.

Moisha_Liberman ()
Ответ на: Re: Да, Джо :) от anonymous

можно так да

grep CONFIG_IP_DCCP /boot/config-3.12.13-gentoo
# CONFIG_IP_DCCP is not set
Но имхо, первый вариант логичнее...

Twissel ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.