oss-sec mailing list archives
Re: Re: CVE Request: Linux kernel crypto api unprivileged arbitrary module load
From: Mathias Krause <minipli () googlemail com>
Date: Sat, 24 Jan 2015 18:43:13 +0100
On 24 January 2015 at 15:53, <cve-assign () mitre org> wrote:
The Crypto API in the Linux kernel before 3.19 allowed unprivileged users to load arbitrary kernel modules.https://plus.google.com/+MathiasKrause/posts/PqFCo4bfrWuhttps://lkml.org/lkml/2013/3/4/70 https://git.kernel.org/linus/5d26a105b5a73e5635eae0629b42fa0a90e07b7bUse CVE-2013-7421 for the original 2013 discovery by Mathias Krause, with a "Try the code snippet below on a system with CONFIG_CRYPTO_USER_API=y" attack. [...]
https://git.kernel.org/linus/4943ba16bbc2db05115707b3ff7b4874e9e3c560Use CVE-2014-9644 for this second discovery in 2014, mentioned in PqFCo4bfrWu as 'stumbled over the first flaw -- not handling crypto templates correctly. This means, the patch would prevent loading the vfat.ko module when requesting a cipher named "vfat" but would fail to do so if one would request "vfat(aes)" instead.' As far as we can tell, this is a discovery of a separate attack vector that wasn't implied by the 2013 post.
Even though this was a new discovery, not explicitly mentioned in the initial report, it's the same bug, essentially -- using the AF_ALG interface to load arbitrary modules. In fact, commits 5d26a105b5a7 and 4943ba16bbc2 should have been a single one in the first place. But for whatever reasons commit 5d26a105b5a7 was applied, so the template issue had to be fixed in the follow-up commit 4943ba16bbc2. However, both commits were merged together into Linus' tree that ended up in v3.19-rc1. See the merge commit at [1] and the discussion at [2] for further reference. [1] https://git.kernel.org/linus/e3aa91a7cb21 [2] http://www.mail-archive.com/linux-crypto () vger kernel org/msg12369.html So I think CVE-2014-9644 should be marked as a duplicate of CVE-2013-7421. It's the same issue, really.
https://git.kernel.org/linus/3e14dcf7cb80b34a1f38b55bc96f02d23fdaaaafThis isn't within the scope of either CVE-2013-7421 or CVE-2014-9644. As far as we can tell, it is largely a usability fix. The example mentioned is "This fixes, e.g., requesting 'ecb(blowfish-generic)', which used to work with kernels v3.18 and below." Is there also a security impact if 3e14dcf7cb80b34a1f38b55bc96f02d23fdaaaaf is missing? For example, is it likely that code exists that requests ecb(blowfish-generic) in an environment without 3e14dcf7cb80b34a1f38b55bc96f02d23fdaaaaf, and is able to continue working afterward, but falls back to weak encryption?
It's just an API compliance fix to not regress the user interface for the Crypt User API. No security fix, AFAICS. Regards, Mathias
Current thread:
- CVE Request: Linux kernel crypto api unprivileged arbitrary module load Marc Deslauriers (Jan 23)
- Re: CVE Request: Linux kernel crypto api unprivileged arbitrary module load cve-assign (Jan 24)
- Re: Re: CVE Request: Linux kernel crypto api unprivileged arbitrary module load Mathias Krause (Jan 24)
- Re: CVE Request: Linux kernel crypto api unprivileged arbitrary module load cve-assign (Jan 24)
- Re: Re: CVE Request: Linux kernel crypto api unprivileged arbitrary module load Mathias Krause (Jan 24)
- Re: CVE Request: Linux kernel crypto api unprivileged arbitrary module load cve-assign (Jan 24)