(no commit message)
authorWerner Koch <wk@gnupg.org>
Wed, 6 Dec 2006 16:38:34 +0000 (16:38 +0000)
committerWerner Koch <wk@gnupg.org>
Wed, 6 Dec 2006 16:38:34 +0000 (16:38 +0000)
doc/vuln-announce-cve-2006-6235.txt [new file with mode: 0644]

diff --git a/doc/vuln-announce-cve-2006-6235.txt b/doc/vuln-announce-cve-2006-6235.txt
new file mode 100644 (file)
index 0000000..e27b7d0
--- /dev/null
@@ -0,0 +1,125 @@
+     GnuPG: remotely controllable function pointer [CVE-2006-6235]
+    ===============================================================
+                              2006-12-04
+
+Summary
+=======
+
+Tavis Ormandy of the Gentoo security team identified a severe and
+exploitable bug in the processing of encrypted packets in GnuPG.
+
+[ Please do not send private mail in response to this message.  The
+  mailing list gnupg-devel is the best place to discuss this problem
+  (please subscribe first so you don't need moderator approval [1]). ]
+
+
+Impact
+======
+
+Using malformed OpenPGP packets an attacker is able to modify and
+dereference a function pointer in GnuPG.  This is a remotely
+exploitable bug and affects any use of GnuPG where an attacker can
+control the data processed by GnuPG.  It is not necessary limited to
+encrypted data, also signed data may be affected.
+
+Affected versions: All versions of GnuPG   < 1.4.6 
+                   All versions of GnuPG-2 < 2.0.2
+                   All beta versions of GnuPG-2 (1.9.0 .. 1.9.95)
+Affected tools: gpg, gpgv, gpg2 and gpgv2.
+Affected platforms: All.
+
+gpg-agent, gpgsm as well as other tools are not affected.
+
+A workaround is not known. 
+
+
+Solution
+========
+
+If you are using a vendor supplied version of GnuPG:
+
+ * Wait for an update from your vendor.  Vendors have been informed on
+   Saturday December 2, less than a day after this bug has been reported.
+
+If you are using GnuPG 1.4: 
+
+ * Update as soon as possible to GnuPG 1.4.6. It has been uploaded to
+   the usual location: ftp://ftp.gnupg.org/gcrypt/gnupg/.  This version
+   was due to be released anyway this week.  See
+   http://www.gnupg.org/download/ for details.
+
+ * Or: As another and less intrusive option, apply the attached patch
+   to GnuPG 1.4.5.  This is the smallest possible fix.
+
+If you are using GnuPG 2.0:
+
+ * Apply the attached patch against GnuPG 2.0.1.
+
+ * Or: Stop using gpg2 and gpgv2, install GnuPG 1.4.6 and use gpg and gpgv
+   instead.
+
+If you are using a binary Windows version of GnuPG:
+
+ * A binary version of GnuPG 1.4.6 for Windows is available as usual.
+
+ * Gpg4win 1.0.8, including GnuPG 1.4.6, is available.  Please go to
+   http://www.gpg4win.org .
+
+
+
+
+Background
+==========
+
+GnuPG uses data structures called filters to process OpenPGP messages.
+These filters ware used in a similar way as a pipelines in the shell.
+For communication between these filters context structures are used.
+These are usually allocated on the stack and passed to the filter
+functions.  At most places the OpenPGP data stream fed into these
+filters is closed before the context structure gets deallocated.
+While decrypting encrypted packets, this may not happen in all cases
+and the filter may use a void contest structure filled with garbage.
+An attacker may control this garbage.  The filter context includes
+another context used by the low-level decryption to access the
+decryption algorithm.  This is done using a function pointer.  By
+carefully crafting an OpenPGP message, an attacker may control this
+function pointer and call an arbitrary function of the process.
+Obviously an exploit needs to prepared for a specific version,
+compiler, libc, etc to be successful - but it is definitely doable.
+
+Fixing this is obvious: We need to allocate the context on the heap
+and use a reference count to keep it valid as long as either the
+controlling code or the filter code needs it.
+
+We have checked all other usages of such a stack based filter contexts
+but fortunately found no other vulnerable places.  This allows to
+release a relatively small patch.  However, for reasons of code
+cleanness and easier audits we will soon start to change all these
+stack based filter contexts to heap based ones.
+
+
+Support 
+=======
+
+g10 Code GmbH, a Duesseldorf based company owned and headed by GnuPG's
+principal author, is currently funding GnuPG development.  As evident
+by the two vulnerabilities found within a week, a review of the entire
+code base should be undertaken as soon as possible.  As maintainers we
+try to do our best and are working slowly through the code.  The long
+standing plan is to scrutinize the 2.0 code base, write more test
+cases and to backport new fixes and cleanups to 1.4.  However, as a
+small company our resources are limited and we need to prioritize
+other projects which get us actual revenues.  Support contracts or
+other financial backing would greatly help us to improve the quality
+of GnuPG.
+
+
+Thanks
+======
+
+Tavis Ormandy found this vulnerability.
+
+
+
+
+[1] See http://lists.gnupg.org/mailman/listinfo/gnupg-devel .