Issue #15561 has been updated by Dustin Mitchell.

Status changed from Accepted to In Topic Branch Pending Review
Branch changed from https://github.com/puppetlabs/puppet/pull/1101 to 
https://github.com/puppetlabs/puppet/pull/1556

On some deeper inspection, there are problems with how Puppet parses the 
subject of certs.  In particular, in trying to extract just the CN, it extracts 
the CN and all following text.  The restrictions put in place for this CVE are 
fine for a CN, but are too restrictive for the whole subject.

https://github.com/puppetlabs/puppet/pull/1556 fixes the CN extraction.  With 
this fix, my test script at https://gist.github.com/djmitche/5233972 passes.

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

* Author: Dustin Mitchell
* Status: In Topic Branch Pending Review
* Priority: Urgent
* Assignee: 
* Category: SSL
* Target version: 
* Affected Puppet version: 2.7.18
* Keywords: certificate
* Branch: https://github.com/puppetlabs/puppet/pull/1556
----------------------------------------
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 unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to