-----BEGIN PGP SIGNED MESSAGE-----
______________________________________________________________________________
SUSE Security Announcement
Package: gpg
Announcement-ID: SuSE-SA:2003:048
Date: Wednesday, December 3rd 2003 15:15 MET
Affected products: 7.3, 8.0, 8.1, 8.2, 9.0
SuSE Linux Enterprise Server 7, 8
SuSE Linux Database Server,
SuSE eMail Server III, 3.1
SuSE Linux Firewall on CD/Admin host
SuSE Linux Connectivity Server
SuSE Linux Office Server
SuSE Linux Desktop 1.0
SuSE Linux School Server
SuSE Linux Standard Server 8
Vulnerability Type: cryptographic compromise, remote cmd execution
Severity (1-10): 5
SUSE default package: yes
Cross References: CAN-2003-0971
http://www.gnupg.org/
http://lists.gnupg.org/pipermail/gnupg-announce/2003q4/000276.html
Content of this advisory:
1) security vulnerability resolved: gpg
problem description, discussion, solution and upgrade information
2) pending vulnerabilities, solutions, workarounds:
- kernel
3) standard appendix (further information)
______________________________________________________________________________
1) problem description, brief discussion, solution, upgrade information
The gnupg (the SUSE package is named gpg) package is the most widely
used software for cryptographic encryption/decryption of data.
Two independent errors have been found in gpg (GnuPG) packages as shipped
with SUSE products:
A) A format string error in the client code that does key retrieval
from a (public) key server
B) A cryptographic error in gpg that results in a compromise of a
cryptographic keypair if ElGamal signing keys have been used for
generating the key.
A)
There exists a format string error in thhe client code for key retrieval
from a keyserver. gpg-1.2.x version packages are affected by this
vulnerability.
The format string error can be used by an attacker performing a
man-in-the-middle-attack between you and your keyserver, or by a
compromised keyserver. The result is a crash of gpg or a potential
execution of arbitrary code provided by the attacker, if the keyserver
is used for key retrieval at the time of the attack.
B)
Werner Koch, the author of the gpg package, has publicly announced a
weakness in gpg that has been reported to him by Phong Nguyen:
ElGamal signing keys can be attacked within seconds to reveal the
private key of the keypair. It is strongly advised that ElGamal signing
keys should be revoked immediately. Only ElGamal keys are affected, other
types are not vulnerable.
To find out if you are using an ElGamal signing key, list your public
keys using the command
gpg --list-keys your_keyid
Example:
$ gpg --list-keys build@suse.de
pub 1024D/9C800ACA 2000-10-19 SuSE Package Signing Key
sub 2048g/8495160C 2000-10-19 [expires: 2006-02-12]
$
If your key lists a capital "G" after the key's length (like in
pub 1536G/...), then your key is vulnerable. A small letter "g" after
the key length does NOT indicate any problem.
ElGamal keys can be used for primary keys as well as for subkeys. In the
case where only a subkey is an ElGamal key, it is sufficient to revoke
this specific subkey.
To revoke a key, generate a revocation certificate using the following
command:
gpg --gen-revoke your_keyid > revocation_certificate.pgp
Then, the revokation certificate must be imported into your keyring:
gpg --import < revocation_certificate.pgp
As your last action, send the key with its revocation certificate
to the keyservers that know your key:
gpg --keyserver wwwkeys.eu.pgp.net --send-keys your_keyid
ElGamal keys can only be generated by gpg if a special option (--expert)
has been used to reveal "expert" options, and if a warning has been
ignored after your choice to use ElGamal keys. Such keys are rare
(Werner Koch reports 848 primary ElGamal signing keys and 324 vulnerable
subkeys on the keyservers.). Therefore, we expect that only experienced
users of gpg may be vulnerable to the ElGamal signing key error.
UPDATES:
The nature of the ElGamal error implies that a possible compromise was
made possible with the generation of the key in the past already. There is
no way that an update package can prevent the compromise. However,
the update packages that we provide prevent the use of ElGamal signing
keys for key generation once the packages are installed.
SUSE Linux 8.1 and before contain a gpg package of version 1.0.x
(vulnerable to the ElGamal signing key bug only), a version of 1.2.x
has been shipped with SUSE Linux 8.2 and 9.0 (vulnerable to both errors).
We provide update packages that fix both vulnerabilities, meaning that
only the packages affected by both vulnerabilities are being updated.
For this reason, there are only update packages for SuSE Linux 8.2
and SUSE LINUX 9.0 available for download.
Important Note:
A proper installation of the gpg update package is critical for future
updates on your system. The gpg program is being used by YaST Online
Update (YOU) to verify the authenticity of your update package. A failure
of a signature verification will result in a failure of the installation
of update packages.
Please download the update package for your distribution and verify its
integrity by the methods listed in section 3) of this announcement.
Then, install the package using the command "rpm -Fhv file.rpm" to apply
the update.
Our maintenance customers are being notified individually. The packages
are being offered to install from the maintenance web.
Intel i386 Platform:
SuSE-9.0:
3f3513f61408128b5a95bd251540200f
patch rpm(s):
227002b89a49cf3581fb1fb4c185e725
source rpm(s):
d3bb8845401d5e707a5da830ab209993
SuSE-8.2:
ff54dbcb36cf741f108bdd48d5496e5d
patch rpm(s):
0efef8f33670349639fa5c25b3c5f3a3
source rpm(s):
13ee0ff9bb2137365ab91f32324a4114
Opteron x86_64 Platform:
SuSE-9.0:
a1679f36e00347a1adf53e2209245274
patch rpm(s):
f3002d4cea60bb0acea1e8bea89d46c9
source rpm(s):
50e58f6853dcd5523172cb4c07a63d89
______________________________________________________________________________
2) Pending vulnerabilities in SUSE Distributions and Workarounds:
- kernel: brk() vulnerability
All SUSE Linux kernels (except for the SUSE Linux Enterprise Server 8)
are vulnerable to a privilege escalation vulnerability that can be
exploited by an attacker who has local shell acccess to your system.
We are in the process of testing the update packages for all of our
products. The packages are expected to be released within hours and
are being published as they are ready.
Please follow the guidelines in the announcement about the kernel that
follows this announcement.
______________________________________________________________________________
3) standard appendix: authenticity verification, additional information
- Package authenticity verification:
SUSE update packages are available on many mirror ftp servers all over
the world. While this service is being considered valuable and important
to the free and open source software community, many users wish to be
sure about the origin of the package and its content before installing
the package. There are two verification methods that can be used
independently from each other to prove the authenticity of a downloaded
file or rpm package:
1) md5sums as provided in the (cryptographically signed) announcement.
2) using the internal gpg signatures of the rpm package.
1) execute the command
md5sum
after you downloaded the file from a SUSE ftp server or its mirrors.
Then, compare the resulting md5sum with the one that is listed in the
announcement. Since the announcement containing the checksums is
cryptographically signed (usually using the key security@suse.de),
the checksums show proof of the authenticity of the package.
We disrecommend to subscribe to security lists which cause the
email message containing the announcement to be modified so that
the signature does not match after transport through the mailing
list software.
Downsides: You must be able to verify the authenticity of the
announcement in the first place. If RPM packages are being rebuilt
and a new version of a package is published on the ftp server, all
md5 sums for the files are useless.
2) rpm package signatures provide an easy way to verify the authenticity
of an rpm package. Use the command
rpm -v --checksig
to verify the signature of the package, where is the
filename of the rpm package that you have downloaded. Of course,
package authenticity verification can only target an un-installed rpm
package file.
Prerequisites:
a) gpg is installed
b) The package is signed using a certain key. The public part of this
key must be installed by the gpg program in the directory
~/.gnupg/ under the user's home directory who performs the
signature verification (usually root). You can import the key
that is used by SUSE in rpm packages for SUSE Linux by saving
this announcement to a file ("announcement.txt") and
running the command (do "su -" to be root):
gpg --batch; gpg < announcement.txt | gpg --import
SUSE Linux distributions version 7.1 and thereafter install the
key "build@suse.de" upon installation or upgrade, provided that
the package gpg is installed. The file containing the public key
is placed at the top-level directory of the first CD (pubring.gpg)
and at ftp://ftp.suse.com/pub/suse/pubring.gpg-build.suse.de .
- SUSE runs two security mailing lists to which any interested party may
subscribe:
suse-security@suse.com
- general/linux/SUSE security discussion.
All SUSE security announcements are sent to this list.
To subscribe, send an email to
.
suse-security-announce@suse.com
- SUSE's announce-only mailing list.
Only SUSE's security announcements are sent to this list.
To subscribe, send an email to
.
For general information or the frequently asked questions (faq)
send mail to:
or
respectively.
==================================================================== SUSE's security contact is or .
The public key is listed below.
====================================================================