(CVE-2012-3864) puppet: multiple vulnerabilities for 2.7.17 and earlier releases (CVE-(2012-{3408,3864,3865,3866,3867})

Bug #1023931 reported by Karma Dorje
260
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Gentoo Linux
Fix Released
Low
puppet (Ubuntu)
Fix Released
Undecided
Marc Deslauriers
Lucid
Fix Released
Undecided
Unassigned
Natty
Fix Released
Undecided
Unassigned
Oneiric
Fix Released
Undecided
Unassigned
Precise
Fix Released
Undecided
Unassigned
Quantal
Fix Released
Undecided
Marc Deslauriers

Bug Description

http://projects.puppetlabs.com/projects/puppet/wiki/Release_Notes#2.7.18

This is a security release in the 2.7.x branch.

CVE-2012-3864 Arbitrary file read on the puppet master from authenticated clients (high)

It is possible to construct an HTTP get request from an authenticated
client with a valid certificate that will return the contents of an arbitrary
file on the Puppet master that the master has read-access to.

CVE-2012-3865 Arbitrary file delete/D.O.S on Puppet Master from authenticated clients (high)

Given a Puppet master with the "Delete" directive allowed in auth.conf
for an authenticated host, an attacker on that host can send a specially
crafted Delete request that can cause an arbitrary file deletion on the
Puppet master, potentially causing a denial of service attack. Note that
this vulnerability does *not* exist in Puppet as configured by default.

CVE-2012-3866 last_run_report.yaml is world readable (medium)

The most recent Puppet run report is stored on the Puppet master
with world-readable permissions. The report file contains the context
diffs of any changes to configuration on an agent, which may contain
sensitive information that an attacker can then access. The last run
report is overwritten with every Puppet run.

Arbitrary file read on the Puppet master by an agent (medium)

This vulnerability is dependent upon CVE-2012-3866 "last_run_report.yml
is world readable" above. By creating a hard link of a Puppet-managed
file to an arbitrary file that the Puppet master can read, an attacker forces
the contents to be written to the puppet run summary. The context diff is
stored in last_run_report.yaml, which can then be accessed by the
attacker.

CVE-2012-3867 Insufficient input validation for agent hostnames (low)

An attacker could trick the administrator into signing an attacker's
certificate rather than the intended one by constructing specially
crafted certificate requests containing specific ANSI control sequences.
It is possible to use the sequences to rewrite the order of text displayed
to an administrator such that display of an invalid certificate and valid
certificate are transposed. If the administrator signs the attacker's
certificate, the attacker can then man-in-the-middle the agent.

CVE-2012-3408 Agents with certnames of IP addresses can be impersonated (low)

If an authenticated host with a certname of an IP address changes IP
addresses, and a second host assumes the first host's former IP
address, the second host will be treated by the puppet master as the
first one, giving the second host access to the first host's catalog.
Note: This will not be fixed in Puppet versions prior to the forthcoming
3.x. Instead, with this Puppet 2.7.18, IP-based authentication in
Puppet < 3.x is deprecated, and a warning will be issued when used.

Hotfixes

http://puppetlabs.com/security/cve/cve-2012-3408/hotfixes/

Revision history for this message
In , Mattm-b (mattm-b) wrote :
Download full text (6.5 KiB)

[distro-maint] New Security Vulnerabilities in Puppet [ Confidential ]
gentoo
 x
Moses Mendoza <email address hidden>

Jul 5 (1 day ago)

to distro-maintai.
Internal and external security audits initiated by Puppet Labs have
returned five vulnerabilities (two high, one moderate, and two low) in
puppet. We have requested four CVEs for vulnerabilities 1 - 4, and
will send an update once we have received them from Mitre. We are
working with distribution maintainers and key customers to ensure
we are able to patch the vulnerabilities before any are exploited.

The vulnerabilities discussed in this email have not been publicly
disclosed. One of the attack vectors of vulnerability #1 was
temporarily made public in our ticket tracker. This was addressed but
the vulnerability may have leaked.

We appreciate your consideration to the sensitivity of this information,
and respectfully ask that you refrain from publicly disclosing the contents
of this email until our planned disclosure date, Tuesday, July 10, 2012
at 5:00 PM Pacific Time. On this date we plan to release updated packages
along with a public disclosure.

We have included patches for the following versions of puppet in the
2.6.x and 2.7.x series:
2.6.4
2.6.16
2.7.9
2.7.17

We have tested that the 2.6.17 patch applies cleanly to 2.6.9, and
the 2.7.17 patch applies to 2.7.12. If you have any trouble applying
these or need help with patches for additional Puppet versions, please
let us know. We would be glad to help.

We are currently packaging new releases of Puppet addressing the
vulnerabilities. This will result in the following new Puppet versions:
 * Puppet 2.6.17
 * Puppet 2.7.18
 * Hotfixes will be released for Puppet Enterprise 1.0, 1.1, 1.2.4, and
   2.0.3.
 * For users of Puppet Enterprise 2.5.x, updated packages will be
   included with the forthcoming release of Puppet Enterprise 2.5.2.

# Vulnerability Summary #

Vulnerability 1 (CVE TBD)
 Arbitrary file read on the puppet master from authenticated clients (high)
 *Affected/Patched Versions: 2.7.x, 2.6.x
    It is possible to construct an HTTP get request from an authenticated
    client with a valid certificate that will return the contents of an arbitrary
    file on the Puppet master that the master has read-access to.
Vulnerability 2 (CVE TBD) Arbitrary file delete/D.O.S on Puppet Master from authenticated clients (high)
*Affected/Patched Versions: 2.7.x, 2.6.x
Given a Puppet master with the "Delete" directive allowed in auth.conf
for an authenticated host, an attacker on that host can send a specially
crafted Delete request that can cause an arbitrary file deletion on the
Puppet master, potentially causing a denial of service attack. Note that
this vulnerability does *not* exist in Puppet as configured by default.
Vulnerability 3 (CVE TBD)
last_run_report.yaml is world readable (medium)
*Affected/Patched Versions: 2.7.x
The most recent Puppet run report is stored on the Puppet master
with world-readable permissions. The report file contains the context
diffs of any changes to configuration on an agent, which may contain
sensitive information that an attacker can then access. The last run
report is overwritten with every Pu...

Read more...

Revision history for this message
In , Ackle (ackle) wrote :

Thanks for the report, Matthew.

Revision history for this message
In , Ackle (ackle) wrote :

*** Bug 425846 has been marked as a duplicate of this bug. ***

Karma Dorje (taaroa)
visibility: private → public
Revision history for this message
Karma Dorje (taaroa) wrote :
Changed in gentoo:
importance: Unknown → Low
Revision history for this message
Marc Deslauriers (mdeslaur) wrote :
Changed in puppet (Ubuntu Natty):
status: New → Fix Released
Changed in puppet (Ubuntu Quantal):
status: New → Confirmed
assignee: nobody → Marc Deslauriers (mdeslaur)
Changed in puppet (Ubuntu Precise):
status: New → Fix Released
Changed in puppet (Ubuntu Oneiric):
status: New → Fix Released
Changed in puppet (Ubuntu Lucid):
status: New → Fix Released
Revision history for this message
Marc Deslauriers (mdeslaur) wrote :

This is fixed in quantal now too.

Changed in puppet (Ubuntu Quantal):
status: Confirmed → Fix Released
Revision history for this message
In , matsuu (matsuu) wrote :

sorry for delay.
2.7.18 in cvs. please mark stable 2.7.18.

Revision history for this message
In , Ackle (ackle) wrote :

(In reply to comment #3)
> sorry for delay.
> 2.7.18 in cvs. please mark stable 2.7.18.

Thanks.

Arches, please test and mark stable:
=app-admin/puppet-2.7.18
Target Keywords: "amd64 hppa ppc sparc x86"

Revision history for this message
In , Jdhore (jdhore) wrote :

x86 stable

Revision history for this message
In , Jeroen Roovers (jer-gentoo) wrote :

Stable for HPPA.

Revision history for this message
In , J-ago (j-ago) wrote :

amd64 stable

Revision history for this message
In , Glsamaker (glsamaker) wrote :

CVE-2012-3867 (http://nvd.nist.gov/nvd.cfm?cvename=CVE-2012-3867):
  lib/puppet/ssl/certificate_authority.rb in Puppet before 2.6.17 and 2.7.x
  before 2.7.18, and Puppet Enterprise before 2.5.2, does not properly
  restrict the characters in the Common Name field of a Certificate Signing
  Request (CSR), which makes it easier for user-assisted remote attackers to
  trick administrators into signing a crafted agent certificate via ANSI
  control sequences.

CVE-2012-3866 (http://nvd.nist.gov/nvd.cfm?cvename=CVE-2012-3866):
  lib/puppet/defaults.rb in Puppet 2.7.x before 2.7.18, and Puppet Enterprise
  before 2.5.2, uses 0644 permissions for last_run_report.yaml, which allows
  local users to obtain sensitive configuration information by leveraging
  access to the puppet master server to read this file.

CVE-2012-3865 (http://nvd.nist.gov/nvd.cfm?cvename=CVE-2012-3865):
  Directory traversal vulnerability in lib/puppet/reports/store.rb in Puppet
  before 2.6.17 and 2.7.x before 2.7.18, and Puppet Enterprise before 2.5.2,
  when Delete is enabled in auth.conf, allows remote authenticated users to
  delete arbitrary files on the puppet master server via a .. (dot dot) in a
  node name.

CVE-2012-3864 (http://nvd.nist.gov/nvd.cfm?cvename=CVE-2012-3864):
  Puppet before 2.6.17 and 2.7.x before 2.7.18, and Puppet Enterprise before
  2.5.2, allows remote authenticated users to read arbitrary files on the
  puppet master server by leveraging an arbitrary user's certificate and
  private key in a GET request.

Revision history for this message
In , ZuBB (zvasylvv) wrote :

are you sure its stable?

vv@crusader /var/db/pkg $ emerge -pvt puppet

These are the packages that would be merged, in reverse order:

Calculating dependencies |

!!! Problem resolving dependencies for app-admin/puppet
... done!

!!! The ebuild selected to satisfy "puppet" has unmet requirements.
- app-admin/puppet-2.7.18::gentoo USE="-augeas -diff -doc -emacs -ldap -minimal -rrdtool (-selinux) -shadow -sqlite3 -test -vim-syntax -xemacs" RUBY_TARGETS="-ruby18"

  The following REQUIRED_USE flag constraints are unsatisfied:
    ruby_targets_ruby18

  The above constraints are a subset of the following complete expression:
    any-of ( ruby_targets_ruby18 )

vv@crusader /var/db/pkg $

Revision history for this message
In , ZuBB (zvasylvv) wrote :

(In reply to comment #9)
> are you sure its stable?
>
>
> vv@crusader /var/db/pkg $ emerge -pvt puppet
>
> These are the packages that would be merged, in reverse order:
>
> Calculating dependencies |
>
> !!! Problem resolving dependencies for app-admin/puppet
> ... done!
>
> !!! The ebuild selected to satisfy "puppet" has unmet requirements.
> - app-admin/puppet-2.7.18::gentoo USE="-augeas -diff -doc -emacs -ldap
> -minimal -rrdtool (-selinux) -shadow -sqlite3 -test -vim-syntax -xemacs"
> RUBY_TARGETS="-ruby18"
>
> The following REQUIRED_USE flag constraints are unsatisfied:
> ruby_targets_ruby18
>
> The above constraints are a subset of the following complete expression:
> any-of ( ruby_targets_ruby18 )
>
> vv@crusader /var/db/pkg $

same with all puppet ebuilds.

Revision history for this message
In , J-ago (j-ago) wrote :

stable does not mean what you say and viceversa.

THe error is clear:
> The following REQUIRED_USE flag constraints are unsatisfied:
> ruby_targets_ruby18

So you need to enable ruby18

Revision history for this message
In , ZuBB (zvasylvv) wrote :

(In reply to comment #11)
> stable does not mean what you say and viceversa.
>
> THe error is clear:
> > The following REQUIRED_USE flag constraints are unsatisfied:
> > ruby_targets_ruby18
>
> So you need to enable ruby18

I had to read emerge messages carefully. Sorry for bothering all crowd

Revision history for this message
In , Xmw (xmw) wrote :

ppc stable.

Revision history for this message
In , Raúl Porcel (armin76) wrote :

sparc stable

Revision history for this message
In , Underling (underling) wrote :

Thanks, folks. GLSA Vote: no.

Revision history for this message
In , Ackle (ackle) wrote :

GLSA vote: no.

Closing noglsa.

Changed in gentoo:
status: Unknown → Fix Released
To post a comment you must log in.
This report contains Public Security information  
Everyone can see this security related information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.