diff --git a/lib/gitlab/gpg.rb b/lib/gitlab/gpg.rb index 8166bef4510f48f1e316471f0527c865b6c3ff40..be0bd277a2c9f192ab6775693b270253e7a2a08b 100644 --- a/lib/gitlab/gpg.rb +++ b/lib/gitlab/gpg.rb @@ -61,6 +61,9 @@ def user_infos_from_key(key) GPGME::Key.find(:public, fingerprints).flat_map do |raw_key| raw_key.uids.each_with_object([]) do |uid, arr| + # Skip revoked or invalid uids. This prevents those from being matched against validated email addresses. + next if uid.revoked? || uid.invalid? + name = uid.name.force_encoding('UTF-8') email = uid.email.force_encoding('UTF-8') arr << { name: name, email: email.downcase } if name.valid_encoding? && email.valid_encoding?