Issue #15561 has been updated by Jeff McCune.

Matt Wise wrote:
> Jeff,
>   This bug is still sitting open and affects all versions of Puppet after 
> 2.7.18. Here I am trying to upgrade to 3.0.1, and I find the bug still 
> exists. This has been sitting for 5 months now. Not fixing a bug as serious 
> as this (that is, that it blocks upgrades to any newer version of Puppet) 
> after this long does not instill confidence for businesses that are using 
> this tool to manage their infrastructures.

I'm really sorry you can't upgrade to Puppet 3, the fact that this bug is still 
open really bothers me too.  I wish I had a better answer for you but not much 
has changed since I closed the pull request.

Here's where we're at; Unfortunately, we can't simply allow /'s in certificate 
names because doing so without also making substantial changes to the way the 
indirection subsystem works would re-open CVE-2012-3867  Daniel confirmed this 
in the pull request discussion:

> To be clear, my review was "-1, this is not acceptable to merge without 
> substantial changes".
> The changes are to address, as Jeff notes, the internal assumptions in Puppet 
> (in lib/puppet/indirector/{file,cert*/*,key/*}.rb) that the CN and the 
> filename on disk match in any meaningful way.
> That includes making sure that, eg, "search" operations still work, etc.

This means this isn't a matter of simply changing the regular expression.  If 
we do change just the regular expression without also addressing the core 
issues in the indirector subsystem, then we're back to a gaping security hole.

>   When will this be fixed? We are really not happy being so far behind on our 
> Puppet versions, especially given the security fixes that have gone into 
> Puppet in the last few months.

As much as I'd like to, I cannot provide you with any new information about 
when this will be fixed.  There are no plans to make substantial changes to the 
indirector subsystem that I am aware of.  I wish I had something better to tell 
you regarding this issue.

Perhaps Eric will have some ideas regarding how best to get this issue 
prioritized higher than it currently is, but honestly I just don't think it's 
affecting as many users as some of the other fundamental issues we're currently 
wrestling with.  Settings and code loading affect nearly every Puppet user for 
example.  As far as I know this issue is primarily affecting users who have an 
external CA, which is a much smaller population.

Knowing that this issue is a blocker for you upgrading to Puppet 3.0 is 
valuable impact data.  Do you have a sense of how many sites are unable to 
upgrade to Puppet 3 because of this issue?

Sorry I don't have better news for you at this time...

-Jeff
----------------------------------------
Bug #15561: Fix for CVE-2012-3867 is too restrictive
https://projects.puppetlabs.com/issues/15561#change-78251

Author: Dustin Mitchell
Status: Accepted
Priority: Urgent
Assignee: 
Category: SSL
Target version: 2.7.x
Affected Puppet version: 2.7.18
Keywords: certificate
Branch: https://github.com/puppetlabs/puppet/pull/1101


The fix for CVE-2012-3867 involves checking certificate subjects for "weird" 
characters.  From my read of the CVE entry, this is to filter out characters 
that would cause the name to display in a manner visually indistinguishable 
from a valid hostname.

However, the check is too restrictive:

Could not retrieve catalog from remote server: Certname "puppetagain base 
ca/[email protected]/ou=release engineering/o=mozilla, inc." 
must not contain unprintable or non-ASCII characters

In particular, / is a very common character in subjects, and should be allowed. 
 Puppet is seeing this subject on my base CA - I'm using certificate chaining.

The fix is one character, so I haven't included a patch, but I'm happy to make 
a pull req if necessary.

Another fix would be to only verify certificate subjects for the leaf 
certificate, and not any of the certs in its signing chain, but that seems less 
secure.

It's also worth noting that the regex is overly broad, since it downcases the 
string, then accepts A-Z among other characters.


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to