guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Dealing with CVEs that apply to unspecified package versions


From: Ludovic Courtès
Subject: Re: Dealing with CVEs that apply to unspecified package versions
Date: Sat, 11 Mar 2017 12:09:32 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

Leo Famulari <address@hidden> skribis:

> On Mon, Mar 06, 2017 at 10:36:48PM +0100, Ludovic Courtès wrote:
>> Unfortunately, there’s no way to know whether such CVEs are actually
>> fixed at a specific package version or not, and they’re not uncommon.
>> Consequently, ‘guix lint -c cve’ would now report old CVEs that possibly
>> no longer apply to our package versions.
>
> I didn't notice any change in what the CVE checker reports after
> applying the diff. Did I miss a step?

You need to first clear your cache:

  rm -rf ~/.cache/guix/cve

Here’s the before/after diff I get:

--- /home/ludo/src/guix/cve-before.txt  2017-03-11 12:01:57.908151863 +0100
+++ /home/ludo/src/guix/cve-after.txt   2017-03-11 12:04:24.283399193 +0100
@@ -1,20 +1,42 @@
+gnu/packages/tls.scm:218:2: address@hidden: probably vulnerable to 
CVE-2014-3467, CVE-2014-3468, CVE-2014-3469
 gnu/packages/backup.scm:186:2: address@hidden: probably vulnerable to 
CVE-2016-8687, CVE-2016-8688, CVE-2016-8689
-gnu/packages/base.scm:754:2: address@hidden: probably vulnerable to 
CVE-2016-3075, CVE-2016-5417
-gnu/packages/base.scm:502:2: address@hidden: probably vulnerable to 
CVE-2016-6323
-gnu/packages/base.scm:788:2: address@hidden: probably vulnerable to 
CVE-2015-1781, CVE-2015-7547, CVE-2014-7817, CVE-2014-8121
+gnu/packages/base.scm:278:2: address@hidden: probably vulnerable to 
CVE-2014-9471
+gnu/packages/base.scm:767:2: address@hidden: probably vulnerable to 
CVE-2016-3706, CVE-2016-4429, CVE-2015-7547, CVE-2015-8776, CVE-2015-8777, 
CVE-2015-8778, CVE-2015-8779, CVE-2014-5119, CVE-2014-9761
+gnu/packages/base.scm:789:2: address@hidden: probably vulnerable to 
CVE-2016-3706, CVE-2016-4429, CVE-2015-1781, CVE-2015-7547, CVE-2014-5119, 
CVE-2014-7817, CVE-2014-8121
 gnu/packages/base.scm:155:2: address@hidden: probably vulnerable to 
CVE-2016-6321
-gnu/packages/base.scm:766:2: address@hidden: probably vulnerable to 
CVE-2015-7547, CVE-2015-8776, CVE-2015-8777, CVE-2015-8778, CVE-2015-8779, 
CVE-2014-9761
+gnu/packages/base.scm:503:2: address@hidden: probably vulnerable to 
CVE-2016-3706, CVE-2016-4429, CVE-2016-6323, CVE-2014-5119
+gnu/packages/base.scm:755:2: address@hidden: probably vulnerable to 
CVE-2016-3075, CVE-2016-3706, CVE-2016-4429, CVE-2016-5417, CVE-2014-5119
+gnu/packages/bash.scm:269:2: address@hidden: probably vulnerable to 
CVE-2016-9401
+gnu/packages/busybox.scm:31:2: address@hidden: probably vulnerable to 
CVE-2016-6301
 gnu/packages/compression.scm:210:4: address@hidden: probably vulnerable to 
CVE-2016-3189
-gnu/packages/image.scm:296:2: address@hidden: probably vulnerable to 
CVE-2017-5563, CVE-2016-10095
-gnu/packages/image.scm:487:2: address@hidden: probably vulnerable to 
CVE-2016-9112, CVE-2016-9113, CVE-2016-9114, CVE-2016-9115, CVE-2016-9116, 
CVE-2016-9117, CVE-2016-9118
+gnu/packages/databases.scm:329:2: address@hidden: probably vulnerable to 
CVE-2016-6664
+gnu/packages/databases.scm:720:2: address@hidden: probably vulnerable to 
CVE-2015-3717
+gnu/packages/databases.scm:254:2: address@hidden: probably vulnerable to 
CVE-2014-0001
+gnu/packages/databases.scm:666:2: address@hidden: probably vulnerable to 
CVE-2015-3717
+gnu/packages/gcc.scm:410:2: address@hidden: probably vulnerable to 
CVE-2016-2226, CVE-2016-4487, CVE-2016-4488, CVE-2016-4489, CVE-2016-4490, 
CVE-2016-4491, CVE-2016-4492, CVE-2016-4493
+gnu/packages/ghostscript.scm:64:2: address@hidden: probably vulnerable to 
CVE-2016-10165
+gnu/packages/gnome.scm:5393:4: address@hidden: probably vulnerable to 
CVE-2015-2785
+gnu/packages/gstreamer.scm:99:2: address@hidden: probably vulnerable to 
CVE-2017-5847, CVE-2017-5848, CVE-2016-9446
+gnu/packages/image.scm:487:2: address@hidden: probably vulnerable to 
CVE-2016-7163, CVE-2016-9112, CVE-2016-9113, CVE-2016-9114, CVE-2016-9115, 
CVE-2016-9116, CVE-2016-9117, CVE-2016-9118, CVE-2016-9675
+gnu/packages/image.scm:296:2: address@hidden: probably vulnerable to 
CVE-2017-5563, CVE-2016-10095, CVE-2016-9453, CVE-2015-8781, CVE-2015-8782, 
CVE-2015-8783, CVE-2015-8784
+gnu/packages/image.scm:505:2: address@hidden: probably vulnerable to 
CVE-2016-7163, CVE-2016-9675
+gnu/packages/linux.scm:3063:2: address@hidden: probably vulnerable to 
CVE-2016-1572
+gnu/packages/lynx.scm:35:2: address@hidden: probably vulnerable to 
CVE-2016-9179
 gnu/packages/mail.scm:1081:2: address@hidden: probably vulnerable to 
CVE-2016-8652
 gnu/packages/monitoring.scm:34:2: address@hidden: probably vulnerable to 
CVE-2016-10089
 gnu/packages/mp3.scm:231:2: address@hidden: probably vulnerable to 
CVE-2017-5665
 gnu/packages/mp3.scm:264:2: address@hidden: probably vulnerable to 
CVE-2017-5666, CVE-2017-5851
+gnu/packages/openldap.scm:36:2: address@hidden: probably vulnerable to 
CVE-2015-3276
 gnu/packages/perl.scm:50:2: address@hidden: probably vulnerable to 
CVE-2016-1238
-gnu/packages/php.scm:65:2: address@hidden: probably vulnerable to 
CVE-2017-5340, CVE-2016-10158, CVE-2016-10159, CVE-2016-10160, CVE-2016-10161, 
CVE-2016-10162, CVE-2016-7479
+gnu/packages/php.scm:65:2: address@hidden: probably vulnerable to 
CVE-2017-5340, CVE-2016-10158, CVE-2016-10159, CVE-2016-10160, CVE-2016-10161, 
CVE-2016-10162, CVE-2016-7479, CVE-2014-5459
+gnu/packages/polkit.scm:42:2: address@hidden: probably vulnerable to 
CVE-2016-2568
+gnu/packages/pulseaudio.scm:43:2: address@hidden: probably vulnerable to 
CVE-2014-9496, CVE-2014-9756
+gnu/packages/qemu.scm:70:2: address@hidden: probably vulnerable to 
CVE-2016-10028, CVE-2016-10029, CVE-2016-1922, CVE-2016-1981, CVE-2016-2197, 
CVE-2016-2198, CVE-2016-7161, CVE-2016-7907, CVE-2016-7908, CVE-2016-7909, 
CVE-2016-9381, CVE-2016-9776, CVE-2016-9845, CVE-2016-9846, CVE-2016-9913, 
CVE-2016-9914, CVE-2016-9915, CVE-2016-9916, CVE-2015-8701, CVE-2015-8743, 
CVE-2015-8744, CVE-2015-8745, CVE-2015-8818
+gnu/packages/ssh.scm:113:2: address@hidden: probably vulnerable to 
CVE-2014-1692
+gnu/packages/tls.scm:218:2: address@hidden: probably vulnerable to 
CVE-2014-3467, CVE-2014-3468, CVE-2014-3469
 gnu/packages/web.scm:3627:2: address@hidden: probably vulnerable to 
CVE-2016-4074
 gnu/packages/wget.scm:34:2: address@hidden: probably vulnerable to 
CVE-2017-6508
-gnu/packages/xml.scm:106:2: address@hidden: probably vulnerable to 
CVE-2016-9318
-gnu/packages/zip.scm:75:2: address@hidden: probably vulnerable to 
CVE-2016-9844, CVE-2014-9913
+gnu/packages/xml.scm:170:2: address@hidden: probably vulnerable to 
CVE-2016-4607, CVE-2016-4608, CVE-2016-4609, CVE-2016-4610, CVE-2016-4612
+gnu/packages/xml.scm:106:2: address@hidden: probably vulnerable to 
CVE-2016-2073, CVE-2016-4448, CVE-2016-9318, CVE-2015-8710
 gnu/packages/zip.scm:127:2: address@hidden: probably vulnerable to 
CVE-2017-5974, CVE-2017-5975, CVE-2017-5976, CVE-2017-5977, CVE-2017-5978, 
CVE-2017-5979, CVE-2017-5980, CVE-2017-5981
+gnu/packages/zip.scm:75:2: address@hidden: probably vulnerable to 
CVE-2016-9844, CVE-2014-9913

So that ~30 or so additional CVEs that we’d need to look at.

>> In the patch, I added the ability to specify a ‘patched-vulnerabilities’
>> property to work around that (with Coreutils as an example).  The
>> downside is that we’d have to maintain these lists by ourselves, which
>> is not great, but might still be better than the status quo.
>
> Overall, I think it's better for the CVE checker to omit some CVEs than
> to show a large number of false positives. Otherwise people may not pay
> attention to it at all. And the CVE checker will never be authoritative;
> Guix developers have to look for security advisories from a wide variety
> of sources.
>
> I wonder if we could maintain the set 'patched-vulnerabilities' fields
> satisfactorily.
>
> Changing the subject, this implementation of 'patched-vulnerabilities'
> doesn't preserve the valuable information of how we know the
> vulnerability was fixed (patch?  update? only applicable to non-GNU
> platforms? et cetera).
>
> If we were to start collecting and curating this information, we should
> try to preserve it and make it useful to the other distros.

Right, we’d need to add a clear comment to each vulnerability that we
mark as patched.

> In that case, we could instead update the CVE database through MITRE's
> new CVE form, which recently became the only way to get new CVEs from
> MITRE:
>
> https://cveform.mitre.org
>
> I think the goal is to reduce the friction of requesting and amending
> CVEs. Let's try it :)

Yes, that’s what I thought.  But either way, that’s quite a bit of
non-trivial work.

What about raising the issue on oss-sec?  Ideally the QEMU folks would
take care of labeling QEMU’s CVEs, the libxml2 folks would take care of
theirs, etc.

Thanks for your feedback!

Ludo’.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]