Карточка уязвимости
Характеристики уязвимости
Уровень опасности
Оценка CVSS
(AV:N/AC:L/Au:N/C:P/I:P/A:P)
Производитель ПО
Наименование ПО
libsane
(any)
libsane-dev
(any)
Описание
Александр Хвостов, Жюльен Блаш (Julien Blache) и Аурелиэн Харно
(Aurelien Jarno) обнаружили несколько связанных с безопасностью ошибок
в пакете sane-backends, содержащем библиотеку API для сканеров, включая
демон сканирования (в пакете libsane), которые могут использоваться
удалённым нападающим. Эти проблемы позволяют нападающему вызвать ошибку
сегментации и/или израсходовать произвольный объём памяти. Атака проходит
успешно даже если компьютер нападающего не указан в файле in saned.conf.
Ваш компьютер уязвим только если вы действительно запустили saned,
например из xinetd или inetd. Если соответствующие строки файла
конфигурации xinetd или inetd закомментированы или не существуют, вы
в безопасности.
Попытайтесь выполнить команду "telnet localhost 6566" на
сервере, на котором, возможно, работает saned. Если вы получаете отклик
"connection refused" ("соединение отвергнуто"), saned не запущен и вы
в безопасности.
Проект Common Vulnerabilities and Exposures идентифицировал следующие
проблемы:
CAN-2003-0773:
saned проверяет, с каким удалённым хостом он соединяется (т.е. его
IP-адрес), только после первого соединения (SANE_NET_INIT). Таким
образом, кто угодно может отправить этот RPC, даже если удалённый
хост не позволяет сканирование (не указан в файле saned.conf).
CAN-2003-0774:
saned осуществляет слишком мало проверок на ошибки почти во всём коде.
Таким образом, обрыв соединения определяется чересчур поздно. Если
обрыв соединения прошёл незамеченным, доступ к внутреннем буферу
выходит за пределы выделенной памяти. При этом будет прочитана
некоторая область памяти "после" буфера, что приведёт к ошибке
сегментации.
CAN-2003-0775:
Если saned ожидает получить строку, он выделяет область памяти,
необходимую для сохранения полной строки после того, как получает
её размер. Если соединение обрывается до пересылки размера, malloc
выделит произвольную область памяти. В зависимости от размера и
количества доступной памяти либо произойдёт ошибка при вызове
malloc (->saned корректно завершит работу), либо будет выделен
большой объём памяти. В зависимости от ядра могут произойти ошибки
подкачки или измерения OOM.
CAN-2003-0776:
saned не проверяет корректность номеров полученных им RPC перед тем,
как получить параметры.
CAN-2003-0777:
Если при включенном режиме отладочных сообщений обрывается соединение,
могут быть выведены строки без завершающего нулевого байта, и может
произойти ошибка сегментации.
CAN-2003-0778:
Можно выделить произвольный объём памяти на сервере, где работает
saned, даже если соединение разорвано. В данный момент, по словам
автора программы, это не поддаётся исправлению. Лучше ограничить
общий объём памяти saned (ulimit).
В стабильном дистрибутиве (woody) эта проблема исправлена
в версии 1.0.7-4.
В нестабильном дистрибутиве (sid) эта проблема исправлена
в версиях 1.0.11-1 и более поздних.
Мы рекомендуем вам обновить пакеты libsane.
(Aurelien Jarno) обнаружили несколько связанных с безопасностью ошибок
в пакете sane-backends, содержащем библиотеку API для сканеров, включая
демон сканирования (в пакете libsane), которые могут использоваться
удалённым нападающим. Эти проблемы позволяют нападающему вызвать ошибку
сегментации и/или израсходовать произвольный объём памяти. Атака проходит
успешно даже если компьютер нападающего не указан в файле in saned.conf.
Ваш компьютер уязвим только если вы действительно запустили saned,
например из xinetd или inetd. Если соответствующие строки файла
конфигурации xinetd или inetd закомментированы или не существуют, вы
в безопасности.
Попытайтесь выполнить команду "telnet localhost 6566" на
сервере, на котором, возможно, работает saned. Если вы получаете отклик
"connection refused" ("соединение отвергнуто"), saned не запущен и вы
в безопасности.
Проект Common Vulnerabilities and Exposures идентифицировал следующие
проблемы:
CAN-2003-0773:
saned проверяет, с каким удалённым хостом он соединяется (т.е. его
IP-адрес), только после первого соединения (SANE_NET_INIT). Таким
образом, кто угодно может отправить этот RPC, даже если удалённый
хост не позволяет сканирование (не указан в файле saned.conf).
CAN-2003-0774:
saned осуществляет слишком мало проверок на ошибки почти во всём коде.
Таким образом, обрыв соединения определяется чересчур поздно. Если
обрыв соединения прошёл незамеченным, доступ к внутреннем буферу
выходит за пределы выделенной памяти. При этом будет прочитана
некоторая область памяти "после" буфера, что приведёт к ошибке
сегментации.
CAN-2003-0775:
Если saned ожидает получить строку, он выделяет область памяти,
необходимую для сохранения полной строки после того, как получает
её размер. Если соединение обрывается до пересылки размера, malloc
выделит произвольную область памяти. В зависимости от размера и
количества доступной памяти либо произойдёт ошибка при вызове
malloc (->saned корректно завершит работу), либо будет выделен
большой объём памяти. В зависимости от ядра могут произойти ошибки
подкачки или измерения OOM.
CAN-2003-0776:
saned не проверяет корректность номеров полученных им RPC перед тем,
как получить параметры.
CAN-2003-0777:
Если при включенном режиме отладочных сообщений обрывается соединение,
могут быть выведены строки без завершающего нулевого байта, и может
произойти ошибка сегментации.
CAN-2003-0778:
Можно выделить произвольный объём памяти на сервере, где работает
saned, даже если соединение разорвано. В данный момент, по словам
автора программы, это не поддаётся исправлению. Лучше ограничить
общий объём памяти saned (ulimit).
В стабильном дистрибутиве (woody) эта проблема исправлена
в версии 1.0.7-4.
В нестабильном дистрибутиве (sid) эта проблема исправлена
в версиях 1.0.11-1 и более поздних.
Мы рекомендуем вам обновить пакеты libsane.
Как исправить
Проблема может быть решена обновлением операционной системы до следующих версий пакетов в зависимости от архитектуры:
Debian GNU/Linux 3.0:
ppc:
libsane - 1.0.7-4
libsane-dev - 1.0.7-4
s390x:
libsane - 1.0.7-4
libsane-dev - 1.0.7-4
m68k:
libsane - 1.0.7-4
libsane-dev - 1.0.7-4
i686:
libsane - 1.0.7-4
libsane-dev - 1.0.7-4
hppa:
libsane - 1.0.7-4
libsane-dev - 1.0.7-4
sparc:
libsane - 1.0.7-4
libsane-dev - 1.0.7-4
alpha:
libsane - 1.0.7-4
libsane-dev - 1.0.7-4
ia64:
libsane - 1.0.7-4
libsane-dev - 1.0.7-4
mips:
libsane - 1.0.7-4
libsane-dev - 1.0.7-4
mipsel:
libsane - 1.0.7-4
libsane-dev - 1.0.7-4
arm:
libsane - 1.0.7-4
libsane-dev - 1.0.7-4
Debian GNU/Linux 3.0:
ppc:
libsane - 1.0.7-4
libsane-dev - 1.0.7-4
s390x:
libsane - 1.0.7-4
libsane-dev - 1.0.7-4
m68k:
libsane - 1.0.7-4
libsane-dev - 1.0.7-4
i686:
libsane - 1.0.7-4
libsane-dev - 1.0.7-4
hppa:
libsane - 1.0.7-4
libsane-dev - 1.0.7-4
sparc:
libsane - 1.0.7-4
libsane-dev - 1.0.7-4
alpha:
libsane - 1.0.7-4
libsane-dev - 1.0.7-4
ia64:
libsane - 1.0.7-4
libsane-dev - 1.0.7-4
mips:
libsane - 1.0.7-4
libsane-dev - 1.0.7-4
mipsel:
libsane - 1.0.7-4
libsane-dev - 1.0.7-4
arm:
libsane - 1.0.7-4
libsane-dev - 1.0.7-4
Ссылки
http://www.debian.org/security/dsa-379/
Источник: CVE
Наименование: CVE-2003-0773
URL: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-0773
Источник: CVE
Наименование: CVE-2003-0776
URL: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-0776
Источник: CVE
Наименование: CVE-2003-0777
URL: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-0777
Источник: CVE
Наименование: CVE-2003-0774
URL: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-0774
Источник: CVE
Наименование: CVE-2003-0775
URL: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-0775
Источник: CVE
Наименование: CVE-2003-0778
URL: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-0778
Источник: CVE
Наименование: CVE-2003-0773
URL: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-0773
Источник: CVE
Наименование: CVE-2003-0776
URL: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-0776
Источник: CVE
Наименование: CVE-2003-0777
URL: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-0777
Источник: CVE
Наименование: CVE-2003-0774
URL: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-0774
Источник: CVE
Наименование: CVE-2003-0775
URL: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-0775
Источник: CVE
Наименование: CVE-2003-0778
URL: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-0778