Bug #3689
msfconsole fails with Encoding::UndefinedConversionError on ruby 1.9.2 and rubygems 1.5.0
| Status: | Rejected | Start date: | 02/10/2011 | |
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | James Lee | % Done: | 0% |
|
| Category: | general | |||
| Target version: | Metasploit 4.0.0 | |||
| Resolution: | Release Note: |
Description
Both on Fedora 14 x64 and OSX 10.6.6, after updating to rubygems 1.5.0, trying to start msfconsole throws:
➜ ~ msfconsole
/home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:509:in `read': U+00E9 from UTF-8 to ASCII-8BIT (Encoding::UndefinedConversionError)
from /home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:509:in `load'
from /home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/source_index.rb:116:in `block (2 levels) in load_gems_in'
from /home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/source_index.rb:115:in `each'
from /home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/source_index.rb:115:in `block in load_gems_in'
from /home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/source_index.rb:112:in `reverse_each'
from /home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/source_index.rb:112:in `load_gems_in'
from /home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/source_index.rb:308:in `refresh!'
from /home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/source_index.rb:67:in `from_gems_in'
from /home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/source_index.rb:47:in `from_installed_gems'
from /home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems.rb:963:in `source_index'
from /home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/gem_path_searcher.rb:83:in `init_gemspecs'
from /home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/gem_path_searcher.rb:13:in `initialize'
from /home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems.rb:922:in `new'
from /home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems.rb:922:in `searcher'
from /home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems.rb:213:in `try_activate'
from <internal:lib/rubygems/custom_require>:32:in `rescue in require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from /opt/metasploit/lib/packetfu.rb:24:in `pcaprub_platform_require'
from /opt/metasploit/lib/packetfu.rb:31:in `<module:PacketFu>'
from /opt/metasploit/lib/packetfu.rb:12:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from /opt/metasploit/lib/msf/core/db.rb:10:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from /opt/metasploit/lib/msf/core/db_manager.rb:2:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from /opt/metasploit/lib/msf/core/framework.rb:67:in `<class:Framework>'
from /opt/metasploit/lib/msf/core/framework.rb:12:in `<module:Msf>'
from /opt/metasploit/lib/msf/core/framework.rb:4:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from /opt/metasploit/lib/msf/core.rb:33:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from /opt/metasploit/lib/msf/ui/console/driver.rb:1:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from /opt/metasploit/lib/msf/ui/console.rb:10:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from /opt/metasploit/lib/msf/ui.rb:10:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from /usr/local/bin/msfconsole:113:in `<main>'
Additional Info:
➜ ~ ruby -v
ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-linux]
➜ ~ gem -v
1.5.0
➜ ~ gem list
- LOCAL GEMS ***
abstract (1.0.0)
actionmailer (3.0.4, 3.0.3, 3.0.0)
actionpack (3.0.4, 3.0.3, 3.0.0)
activemodel (3.0.4, 3.0.3, 3.0.0)
activerecord (3.0.4, 3.0.3, 3.0.0)
activeresource (3.0.4, 3.0.3, 3.0.0)
activesupport (3.0.4, 3.0.3, 3.0.0)
annotate-models (1.0.4)
arel (2.0.8, 2.0.7, 1.0.1)
autotest (4.4.6, 4.3.2)
autotest-growl (0.2.9)
autotest-inotify (0.0.5)
autotest-rails (4.1.0)
builder (3.0.0, 2.1.2)
bundler (1.0.10)
configuration (1.2.0)
diff-lcs (1.1.2)
erubis (2.6.6)
factory_girl (1.3.3)
factory_girl_rails (1.0.1, 1.0)
ffi (1.0.5)
gravatar_image_tag (1.0.0)
heroku (1.17.10)
i18n (0.5.0, 0.4.1)
json (1.5.1, 1.4.6)
launchy (0.3.7)
mail (2.2.15, 2.2.5.1)
mime-types (1.16)
nokogiri (1.4.4, 1.4.3.1)
packetfu (1.0.0)
pcaprub (0.9.2)
polyglot (0.3.1)
rack (1.2.1)
rack-mount (0.6.13)
rack-test (0.5.7, 0.5.4)
rails (3.0.4, 3.0.3, 3.0.0)
railties (3.0.4, 3.0.3, 3.0.0)
rake (0.8.7)
rb-inotify (0.8.4)
rest-client (1.6.1)
rspec (2.5.0, 2.4.0)
rspec-core (2.5.1, 2.4.0)
rspec-expectations (2.5.0, 2.4.0)
rspec-mocks (2.5.0, 2.4.0)
rspec-rails (2.5.0, 2.4.1)
spork (0.8.4)
sqlite3 (1.3.3)
sqlite3-ruby (1.3.3, 1.3.1)
thor (0.14.6, 0.14.0)
treetop (1.4.9, 1.4.8)
tzinfo (0.3.24, 0.3.23)
webrat (0.7.3, 0.7.1)
ZenTest (4.4.2, 4.4.0)
➜ ~ rvm info
ruby-1.9.2-p136:
system:
uname: "Linux Naboo.orion 2.6.35.10-74.fc14.x86_64 #1 SMP Thu Dec 23 16:04:50 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux"
bash: "/bin/bash => GNU bash, version 4.1.7(1)-release (x86_64-redhat-linux-gnu)"
zsh: "/bin/zsh => zsh 4.3.10 (x86_64-redhat-linux-gnu)"
rvm:
version: "rvm 1.2.6 by Wayne E. Seguin (wayneeseguin@gmail.com) [http://rvm.beginrescueend.com/]"
ruby:
interpreter: "ruby"
version: "1.9.2p136"
date: "2010-12-25"
platform: "x86_64-linux"
patchlevel: "2010-12-25 revision 30365"
full_version: "ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-linux]"
homes:
gem: "/home/ianmalcolm/.rvm/gems/ruby-1.9.2-p136"
ruby: "/home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136"
binaries:
ruby: "/home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136/bin/ruby"
irb: "/home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136/bin/irb"
gem: "/home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136/bin/gem"
rake: "/home/ianmalcolm/.rvm/gems/ruby-1.9.2-p136/bin/rake"
environment:
PATH: "/home/ianmalcolm/.rvm/gems/ruby-1.9.2-p136/bin:/home/ianmalcolm/.rvm/gems/ruby-1.9.2-p136@global/bin:/home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136/bin:/home/ianmalcolm/.rvm/bin:/opt/arm/bin:/opt/devkitpro/devkitARM/bin:/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ianmalcolm/bin:/usr/lib64/alliance/bin:/usr/libexec/sdcc"
GEM_HOME: "/home/ianmalcolm/.rvm/gems/ruby-1.9.2-p136"
GEM_PATH: "/home/ianmalcolm/.rvm/gems/ruby-1.9.2-p136:/home/ianmalcolm/.rvm/gems/ruby-1.9.2-p136@global"
MY_RUBY_HOME: "/home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136"
IRBRC: "/home/ianmalcolm/.rvm/rubies/ruby-1.9.2-p136/.irbrc"
RUBYOPT: ""
gemset: ""
Older bug reports (Bug #1914, Bug #2009 and Bug #713) report this as being a problem with the Nokogiri gem. Uninstalling the gem does not fix the issue this time, though.
Related issues
History
#1 Updated by Tasos Laskos about 1 year ago
Same here, same environment but with rubygems 1.5.2.
#2 Updated by James Lee about 1 year ago
- Priority changed from High to Normal
- Target version set to Metasploit 3.7
This is a problem with rubygems making unfounded assumptions. For now that means we can't support rubygems 1.5+. As a temporary workaround, you can either downgrade to 1.3.x, or patch specification.rb by removing the :encoding passed to File.read near line 506.
#3 Updated by James Lee about 1 year ago
- Target version changed from Metasploit 3.7 to Metasploit 4.0.0
These didn't make it, pushing to 3.8
#4 Updated by Jonathan Cran 11 months ago
note, to downgrade:
gem install rubygems-update gem update --system -v 1.3.x
Typically i run 1.4.2 & comment the specification line so:
code = if defined? Encoding
File.read file, :encoding => "UTF-8"
else
File.read file
end
becomes
def self.load file
return unless file && File.file?(file)
file = file.dup.untaint
code = if defined? Encoding
File.read file, :encoding => "UTF-8:-"
else
File.read file
end
#5 Updated by Tasos Laskos 10 months ago
The problem has stopped occurring when running msfconsole although it now appears when running msfrpcd.
zapotek@zonster:~/workspace/metasploit$ ./msfrpcd -P test
[*] XMLRPC starting on 0.0.0.0:55553 (SSL):Basic...
/home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:510:in `read': U+92F8 from UTF-8 to ASCII-8BIT (Encoding::UndefinedConversionError)
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:510:in `load'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/source_index.rb:116:in `block (2 levels) in load_gems_in'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/source_index.rb:115:in `each'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/source_index.rb:115:in `block in load_gems_in'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/source_index.rb:112:in `reverse_each'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/source_index.rb:112:in `load_gems_in'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/source_index.rb:309:in `refresh!'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/source_index.rb:67:in `from_gems_in'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/source_index.rb:47:in `from_installed_gems'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:1025:in `source_index'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/gem_path_searcher.rb:135:in `init_gemspecs'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/gem_path_searcher.rb:14:in `initialize'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:984:in `new'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:984:in `searcher'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:206:in `try_activate'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:57:in `rescue in require'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
from /home/zapotek/workspace/metasploit/lib/rex/parser/nokogiri_doc_mixin.rb:9:in `load_nokogiri'
from /home/zapotek/workspace/metasploit/lib/rex/parser/nokogiri_doc_mixin.rb:40:in `<module:Parser>'
from /home/zapotek/workspace/metasploit/lib/rex/parser/nokogiri_doc_mixin.rb:38:in `<module:Rex>'
from /home/zapotek/workspace/metasploit/lib/rex/parser/nokogiri_doc_mixin.rb:37:in `<top (required)>'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/zapotek/workspace/metasploit/lib/rex/parser/nmap_nokogiri.rb:1:in `<top (required)>'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/zapotek/workspace/metasploit/lib/msf/core/db.rb:2:in `<top (required)>'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/zapotek/workspace/metasploit/lib/msf/core/db_manager.rb:2:in `<top (required)>'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/zapotek/workspace/metasploit/lib/msf/core/framework.rb:68:in `<class:Framework>'
from /home/zapotek/workspace/metasploit/lib/msf/core/framework.rb:12:in `<module:Msf>'
from /home/zapotek/workspace/metasploit/lib/msf/core/framework.rb:4:in `<top (required)>'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/zapotek/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/zapotek/workspace/metasploit/lib/msf/core.rb:33:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from /home/zapotek/workspace/metasploit/lib/msf/base.rb:19:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from ./msfrpcd:84:in `<main>'