Puppet 2.7.11 is a maintenance and security release in the 2.7.x branch.

The security changes in 2.7.11 address CVEs 2012-1053 and 2012-1054.
The maintenance changes are to address regressions in 2.7.10.

All users of Puppet 2.7.x are encouraged to upgrade when possible to
Puppet 2.7.11.

Other information available at:  http://puppetlabs.com/security
or visit http://puppetlabs.com/security/cve/cve-2012-1053 and
http://puppetlabs.com/security/cve/cve-2012-1054

Detailed feature release notes are available:

https://projects.puppetlabs.com/projects/puppet/wiki/Release_Notes#2.7.11


This release is available for download at:
http://puppetlabs.com/downloads/puppet/puppet-2.7.11.tar.gz

RPM's are available at http://yum.puppetlabs.com/el or /fedora

Debs are available on http://apt.puppetlabs.com (lenny requires
backports enabled)

Puppet is also available via Rubygems at http://rubygems.org

See the Verifying Puppet Download section at:
http://projects.puppetlabs.com/projects/puppet/wiki/Downloading_Puppet

Please report feedback via the Puppet Labs Redmine site, using an
affected puppet version of 2.7.11
http://projects.puppetlabs.com/projects/puppet/



# Summary #

(#12457, #12459) Execs, when run with a user specified but with no
group specified will get root group, so the exec then gets unintended
privileges. This is a permanent change for the forked process. Exploit
requires access to either the command the exec will run or to the
manifests calling execs.

(#12458) Similarly unexpected privileges are given to providers and
types (egid remains as root).

(#12460) Klogin type will write to untrusted locations (write through symlinks)


# Details #

CVE-2012-1053 GID Issues (#12457, #12458, #12459) [ Medium ]

#12457 - Real gid always present in supplementary groups

 Overview
 ===================================================
 In Puppet::Util::SUIDManager, Puppet tries to re-init the supplementary
 groups in the "initgroups" method.  At
 lib/puppet/util/suidmanager.rb:148, it reads:

  Process.initgroups(Etc.getpwuid(user).name, Process.gid)

 Since the real gid is probably root, this always adds the gid "0" to
 the list of supplementary groups for the process as per this strace for
 a change to my user account (with 7 supplementary groups):

  setgroups(8, [0, 10, 14, 18, 54, 1002, 1004, 474]) = 0

 This method is called by SUIDManager's change_user method, which is
 called in critical places such as lib/puppet/util.rb:308 in
 execute_posix (as used by lots of things including Exec resources).


#12458 - Only euid changed, not egid

 Overview
 ===============================
 The second problem occurs when only a target user is given to the
 SUIDManager asuser method as opposed to a target user and group, as is
 the case in the following places:
  lib/puppet/provider/ssh_authorized_key/parsed.rb:59
  lib/puppet/type/file/target.rb:46

 In this case, the SUIDManager asuser method at
 lib/puppet/util/suidmanager.rb:78 doesn't change the egid, only the
 euid, so the egid remains as root.


#12459 - Permanent uid change doesn't drop supplementary groups

 Overview
 ========
 When execute_posix or similar forks and calls SUIDManager's change_user
 method, it sets permanent=true to change the real uid instead of the
 euid (lib/puppet/util.rb:307).

 In change_user, a different code path is taken when a permanent change
 is made, and so the supplementary groups aren't dropped
 (lib/puppet/util/suidmanager.rb:121), even if the primary group is set.


CVE-2012-1054 Klogin write through symlink [ High ]

#12460 - Klogin File Handling Issue (Write through symlink)

High risk for users of this type. Users can symlink to arbitrary files, causing
them to be overwritten, such as other klogin files.

2.7.11 Changelog
===
c814c6b (#12572) Fix failing last run summary test on windows
87bcf3f (#12188) Handle Win32 as well as Unix in pidfile tests.
01b57e9 (#12188) Better handling of PID file cleanup warnings.
a8b6088 (#12572) Add acceptance test to make sure no last_run_summary
diff is printed
40480ed (#12572) Revert fix for #7106 and implement a more minimal fix
0486462 (#12412) Mark symbolic file modes test as pending on Windows
115ba71 Symbolic file mode test fixes when no mode change happens.
dde3945 Disable specs that use replace_file on Windows
4272d1f Disable replace_file on Windows
4bcbad4 Remove unnecessary fallbacks in change_{user,group}
ff372fb Document uid/gid-related methods in Puppet::Util
5f8f3ba Copy owner/group in replace_file
f0c9995 (#12463) eliminate `secure_open` in favour of `replace_file`
0c96703 (#12460) use `replace_file` for the .k5login file
7900a66 (#12462) user_role_add: use `replace_file` for /etc/shadow
f9f9961 (#12463) add secure `replace_file` to Puppet::Util
db0f872 (#12459) drop supplementary groups when permanently dropping UID
7f26d28 (#12458) default to users primary group, not root, in `asuser`
a96babf (#12457) add users primary group, not Process.gid, in initgroups
2f21546 Restore compatible `insync?` behaviour for matching arrays.
6ffe25b Fix bugs around the finer-grained insync? protocol.
133b739 Add unit tests for the `insysc?` method of a property.
908bfbd Property Spec cleanup: eliminate stubbing of resource and provider.
0d95eb7 Property Spec cleanup: last let method extraction.
5394413 Property Spec cleanup: extract more let methods.
f919e17 Property Spec cleanup: remove unused instance variable.
7bb261b Property Spec cleanup: remove some pointless extra stubs.
e81f02c Property Spec cleanup: extract property instance to a let method.
4fc4dd4 Property Spec cleanup: extract mock resource to let method.
9083fc6 Property Spec cleanup: extract mock provider to let method.
25d7c99 Property Spec cleanup: extract new subclass to let method.
3638651 (#2927) Acceptance test for symbolic file modes.
daa247e (#12296) Acceptance test for cycle detection in graphs.
1f0f40e Use natural ordering of Puppet::Provider.
3c1604a Make `Puppet::Provider` ordered.
50dc35d (#12296) Now that `Puppet::Type` is ordered, use that.
9962ac0 (#12296) Make `Puppet::Type` ordered.
b28d4ce (#12296) Test cycle detection on real Puppet::Type instances.
103a554 (#12310) Remove process_name instrumentation listener
f11ee44 (#12464) Avoid unnecessarily reloading facts when
node_name_fact is not set

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to