Debian Security Advisory DSA 379-1 | [email protected] |
http://www.debian.org/security/ | Martin Schulze |
September 11th, 2003 | http://www.debian.org/security/faq |
Package | : | sane-backends |
Vulnerability | : | several vulnerabilities |
Problem-Type | : | remote |
Debian-specific | : | no |
CVE references | : | CAN-2003-0773 CAN-2003-0774 CAN-2003-0775 CAN-2003-0776 CAN-2003-0777 CAN-2003-0778 |
Alexander Hvostov, Julien Blache and Aurelien Jarno discovered
several security-related problems in the sane-backends package,
which contains an API library for scanners including a scanning
daemon (in the package libsane) that can be remotely exploited.
Thes problems allow a remote attacker to cause a segfault fault
and/or consume arbitrary amounts of memory. The attack is
successful, even if the attacker’s computer isn’t listed in
saned.conf.
You are only vulnerable if you actually run saned e.g. in xinetd
or inetd. If the entries in the configuration file of xinetd or
inetd respectively are commented out or do not exist, you are
safe.
Try “telnet localhost 6566” on the server that may run saned. If
you get “connection refused” saned is not running and you are
safe.
The Common Vulnerabilities and Exposures project identifies the
following problems:
CAN-2003-0773:
saned checks the identity (IP address) of the remote host only
after the first communication took place (SANE_NET_INIT). So
everyone can send that RPC, even if the remote host is not allowed
to scan (not listed in saned.conf).
CAN-2003-0774:
saned lacks error checking nearly everywhere in the code. So
connection drops are detected very late. If the drop of the
connection isn’t detected, the access to the internal wire buffer
leaves the limits of the allocated memory. So random memory “after”
the wire buffer is read which will be followed by a segmentation
fault.
CAN-2003-0775:
If saned expects strings, it mallocs the memory necessary to
store the complete string after it receives the size of the string.
If the connection was dropped before transmitting the size, malloc
will reserve an arbitrary size of memory. Depending on that size
and the amount of memory available either malloc fails (->saned
quits nicely) or a huge amount of memory is allocated. Swapping and
and OOM measures may occur depending on the kernel.
CAN-2003-0776:
saned doesn’t check the validity of the RPC numbers it gets
before getting the parameters.
CAN-2003-0777:
If debug messages are enabled and a connection is dropped,
non-null-terminated strings may be printed and segamentation faults
may occur.
CAN-2003-0778:
It’s possible to allocate an arbitrary amount of memory on the
server running saned even if the connection isn’t dropped. At the
moment this can not easily be fixed according to the author. Better
limit the total amount of memory saned may use (ulimit).
For the stable distribution (woody) this problem has been fixed
in version 1.0.7-4.
For the unstable distribution (sid) this problem has been fixed
in version 1.0.11-1 and later.
We recommend that you upgrade your libsane packages.
Upgrade Instructions
wget url
will fetch the file for you
dpkg -i file.deb
will install the referenced file.
If you are using the apt-get package manager, use the line for
sources.list as given below:
apt-get update
will update the internal database apt-get upgrade
will install corrected packages
You may use an automated update by adding the resources from the
footer to the proper configuration.
Debian GNU/Linux 3.0 alias woody
Source archives:
http://security.debian.org/pool/updates/main/s/sane-backends/sane-backends_1.0.7-4.dsc
Size/MD5 checksum: 650 fce2bccda1eca4e4185deee5681f738f
http://security.debian.org/pool/updates/main/s/sane-backends/sane-backends_1.0.7-4.diff.gz
Size/MD5 checksum: 27898 56454dddbb589c56c5404c3228c0e4e8
http://security.debian.org/pool/updates/main/s/sane-backends/sane-backends_1.0.7.orig.tar.gz
Size/MD5 checksum: 1867577 6010d68d8a8c29d1dcbf0c6d5005770b