Bug 880737 - (CVE-2014-3467) VUL-0: CVE-2014-3467: libtasn1: multiple boundary check issues could allow DoS
(CVE-2014-3467)
VUL-0: CVE-2014-3467: libtasn1: multiple boundary check issues could allow DoS
Status: RESOLVED FIXED
Classification: Novell Products
Product: SUSE Security Incidents
Classification: Novell Products
Component: Incidents
unspecified
Other Other
: P3 - Medium : Normal
: ---
Assigned To: Security Team bot
Security Team bot
https://smash.suse.de/issue/99191/
maint:running:57609:important maint:r...
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2014-05-30 12:23 UTC by Johannes Segitz
Modified: 2014-07-30 11:56 UTC (History)
4 users (show)

See Also:
Found By: Security Response Team
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Johannes Segitz 2014-05-30 12:23:58 UTC
Multiple buffer boundary check issues were discovered in libtasn1 library, causing it to read beyond the boundary of an allocated buffer. An untrusted ASN.1 input could cause an application using the library to crash.

Fixed upstream in libtasn1 3.6:
http://lists.gnu.org/archive/html/help-libtasn1/2014-05/msg00006.html

Please submit for SLE11-SP3, SLE12, openSUSE 12.3 and openSUSE 13.1.

References:
https://bugzilla.redhat.com/show_bug.cgi?id=1102022
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-3467
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3467
Comment 1 Marcus Schaefer 2014-05-30 12:27:35 UTC
I'm not and never was responsible for this library, even though some
stupid maintainer tool might have told you that. Please refer to the package
changelog and find the one who really contributes to it

Thanks
Comment 2 Swamp Workflow Management 2014-05-30 12:35:46 UTC
An update workflow for this issue was started.
This issue was rated as important.
Please submit fixed packages until 2014-06-06.
When done, reassign the bug to security-team@suse.de.
https://swamp.suse.de/webswamp/wf/57609
Comment 3 Swamp Workflow Management 2014-05-30 22:00:34 UTC
bugbot adjusting priority
Comment 4 Swamp Workflow Management 2014-06-02 10:15:28 UTC
An update workflow for this issue was started.
This issue was rated as important.
Please submit fixed packages until 2014-06-09.
When done, reassign the bug to security-team@suse.de.
https://swamp.suse.de/webswamp/wf/57618
Comment 5 Bernhard Wiedemann 2014-06-03 10:00:29 UTC
This is an autogenerated message for OBS integration:
This bug (880737) was mentioned in
https://build.opensuse.org/request/show/236130 Factory / libtasn1
Comment 6 Scott Reeves 2014-06-09 05:08:10 UTC
Looking into applying these patches, however there have been a lot of other changes since our versions so it's still a work in progress as they need reworking.

However I think for SLE12 we probably should actually just update to the latest version to make the future SLE12 maintenance much easier. Marcus - do you see anything in the submission you made to factory (#236130) that would preclude submitting this to SLE12?
Comment 7 Marcus Meissner 2014-06-10 11:20:47 UTC
I submitted it this morning for SLE12.
Comment 9 Federico Mena Quintero 2014-06-13 00:01:34 UTC
Hmm, the patches mentioned in the Red Hat bug don't apply cleanly, and it's not just a question of jiggling them a bit.  There are changes that *seem* easy enough to apply, but that may leave us with faulty code.

For example, the first one has this:

+++ b/lib/decoding.c
@@ -149,7 +149,7 @@ asn1_get_tag_der (const unsigned char *der, int der_len,
       /* Long form */
       punt = 1;
       ris = 0;
-      while (punt <= der_len && der[punt] & 128)
+      while (punt < der_len && der[punt] & 128)
 	{
 
 	  if (INT_MULTIPLY_OVERFLOW (ris, 128))

Easy enough, substitute "<=" for "<".  But it has that INT_MULTIPLY_OVERFLOW(), while the code in SLE11 doesn't have it:

      /* Long form */
      punt = 1;
      ris = 0;
      while (punt <= der_len && der[punt] & 128)
	{
	  int last = ris;
	  ris = ris * 128 + (der[punt++] & 0x7F);

So, there are other fixes that have been applied between version 1.5 (which is in SLE11) and version 3.3 from SLE12.
Comment 17 Federico Mena Quintero 2014-07-07 17:52:30 UTC
I'm almost finished with this:

1. Wrap version 3.5 of libtasn1 so that it exposes the old API/ABI from 1.5, but uses the new implementation internally.

2. Since we expose the same old ABI, the library's .so version doesn't change from what it is in SLE11.

I'm testing this new package and will submit the results if they work.
Comment 18 Federico Mena Quintero 2014-07-12 03:05:41 UTC
Finally - this works.  I've submitted this to SLE11 with request id 41117.  Reassigning to security-team.
Comment 19 Federico Mena Quintero 2014-07-15 00:29:44 UTC
Resubmitted, with resolved conflicts for osc, with request 41158.
Comment 20 Federico Mena Quintero 2014-07-15 18:29:27 UTC
Resubmitted again with id 41219, without unreferenced patches (argh!).
Comment 21 Swamp Workflow Management 2014-07-24 01:05:41 UTC
SUSE-SU-2014:0931-1: An update that fixes three vulnerabilities is now available.

Category: security (important)
Bug References: 880735,880737,880738
CVE References: CVE-2014-3467,CVE-2014-3468,CVE-2014-3469
Sources used:
SUSE Linux Enterprise Software Development Kit 11 SP3 (src):    libtasn1-1.5-1.28.1
SUSE Linux Enterprise Server 11 SP3 for VMware (src):    libtasn1-1.5-1.28.1
SUSE Linux Enterprise Server 11 SP3 (src):    libtasn1-1.5-1.28.1
SUSE Linux Enterprise Desktop 11 SP3 (src):    libtasn1-1.5-1.28.1
Comment 22 Bernhard Wiedemann 2014-07-26 09:00:23 UTC
This is an autogenerated message for OBS integration:
This bug (880737) was mentioned in
https://build.opensuse.org/request/show/242449 Factory / libtasn1
Comment 24 Marcus Meissner 2014-07-30 11:56:21 UTC
relkeased