diff options
author | Eli Young <elyscape@gmail.com> | 2015-05-28 18:15:05 -0700 |
---|---|---|
committer | Eli Young <elyscape@gmail.com> | 2015-06-01 16:19:07 -0700 |
commit | 601f681787c8d6c02bb3566b8cefde289377be0e (patch) | |
tree | 1f6ce54256909aafc643bf89ee2b203a58e70d80 /lib/puppet | |
parent | a383705fdb133978e53503b7e01012367fac139d (diff) | |
download | puppet-stdlib-601f681787c8d6c02bb3566b8cefde289377be0e.tar.gz puppet-stdlib-601f681787c8d6c02bb3566b8cefde289377be0e.tar.bz2 |
fqdn_rotate: Don't use the value itself as part of the random seed
Previously, the random number generator was seeded with the array or
string to be rotated in addition to any values specifically provided for
seeding. This behavior is potentially insecure in that it allows an
attacker who can modify the source data to choose the post-shuffle
order.
Diffstat (limited to 'lib/puppet')
-rw-r--r-- | lib/puppet/parser/functions/fqdn_rotate.rb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/puppet/parser/functions/fqdn_rotate.rb b/lib/puppet/parser/functions/fqdn_rotate.rb index d9741a0..e1a50e6 100644 --- a/lib/puppet/parser/functions/fqdn_rotate.rb +++ b/lib/puppet/parser/functions/fqdn_rotate.rb @@ -11,7 +11,7 @@ Rotates an array a random number of times based on a nodes fqdn. raise(Puppet::ParseError, "fqdn_rotate(): Wrong number of arguments " + "given (#{arguments.size} for 1)") if arguments.size < 1 - value = arguments[0] + value = arguments.shift require 'digest/md5' unless value.is_a?(Array) || value.is_a?(String) |