<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Common Media, Inc. &#187; ruby</title>
	<atom:link href="http://www.commonmediainc.com/tag/ruby/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.commonmediainc.com</link>
	<description>Online Communities and Web Development</description>
	<lastBuildDate>Fri, 06 May 2011 15:10:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Solutions for Ruby vulnerabilities</title>
		<link>http://www.commonmediainc.com/2008/06/23/solutions-for-ruby-vulnerabilities/</link>
		<comments>http://www.commonmediainc.com/2008/06/23/solutions-for-ruby-vulnerabilities/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 15:57:43 +0000</pubDate>
		<dc:creator>pjmorse</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[System Administration]]></category>
		<category><![CDATA[patching]]></category>
		<category><![CDATA[phusion passenger]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ruby enterprise edition]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.commonmediainc.com/?p=35</guid>
		<description><![CDATA[The recently-announced vulnerabilities in Ruby have put many of us administering Rails applications in a production space between a rock and a hard place. To recap, there are three major &#8220;lines&#8221; of Ruby interpreters, the 1.8.6 line, the 1.8.7 line, and the 1.9 line. All of these show the vulnerability, so nearly everyone needs to [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.ruby-lang.org/en/news/2008/06/20/arbitrary-code-execution-vulnerabilities/">recently-announced vulnerabilities in Ruby</a> have put many of us administering Rails applications in a production space between a rock and a hard place.</p>
<p>To recap, there are three major &#8220;lines&#8221; of Ruby interpreters, the 1.8.6 line, the 1.8.7 line, and the 1.9 line. All of these show the vulnerability, so nearly everyone needs to update their Ruby. (I&#8217;ll get to the exceptions later.) Rails introduces a new line of complication, because the 1.8.7 only works for Rails 2.1 and newer; if the Rails apps in question aren&#8217;t ready for Rails 2.1, or already running it (unlikely), the best route would be to continue to update in the 1.8.6 line. So there&#8217;s the rock: we need to update our Ruby.</p>
<p>The &#8220;hard place&#8221; is that the only patches so far released by the Ruby maintainers tend to produce segmentation faults, according to many who have tried them so far. That&#8217;s a long way of saying, &#8220;They don&#8217;t work.&#8221;</p>
<p>As a Rails-supporting sysadmin with, you&#8217;re left with several options, none of them comfortable. You can, in order of increasing riskiness:</p>
<ul>
<li>Wait out the Ruby maintainers and hope they release a working 1.8.6 patchlevel before your app is compromised.</li>
<li>Do crash-priority Rails upgrades on all your apps and switch to Rails 2.1, then move your Ruby to the 1.8.7 line.</li>
<li>Switch to an entirely different Ruby interpreter, like Rubinius or JRuby. (This hinges on the idea that Ruby is an interpreted language, and as long as the language is interpreted consistently there is room for any number of interpreters. Apparently JRuby and Rubinius are not affected by these vulnerabilities, only MRI, Matz&#8217;s Ruby Interpreter, which is the &#8220;standard&#8221; implementation.)</li>
<li>Switch to a different production stack entirely. For example, we&#8217;re currently using Apache 2.2 as a proxy for a Mongrel cluster in front of Rails 2.0.2 apps, a not-uncommon configuration. This could be the pressure we&#8217;d need to jump to <a href="http://www.modrails.com/">Phusion Passenger</a>, given that their <a href="http://www.rubyenterpriseedition.com">Ruby Enterprise Edition</a> claims to have <a href="http://blog.phusion.nl/2008/06/23/ruby-186-p230187-broke-your-app-ruby-enterprise-edition-to-the-rescue/">applied the security patches</a> to MRE 1.8.6 p111, and thus doesn&#8217;t introduce the segfault-inducing breaking features that the most-recent patchlevel does.</li>
</ul>
<p>I don&#8217;t know which way we&#8217;re going yet, but I&#8217;m not interested in waiting too long, and the upgrade to Rails 2.1 is going to happen sometime anyway, so Option #2 seems most likely for us.</p>
<p><em>Update:</em> Hongli Lai from Phusion assures us (in the comments) that Ruby Enterprise Edition can be used as a drop-in replacement for MRE without replacing the entire stack, moving REE up to the front of the line in the &#8220;different interpreter&#8221; option. Discussion seems to suggest to me that new official patches from the Ruby maintainers will not be coming in a timely fashion, but we are beginning to see &#8220;contributed&#8221; patched distributions emerge for e.g. FreeBSD and Debian.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.commonmediainc.com/2008/06/23/solutions-for-ruby-vulnerabilities/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

