田村と申します。ruby本体に関係があるかも知れないので、ruby-devに投稿します。
次のようなスクリプト:

tam@minuano:~$ cat a.rb

ex1 = <<-EOS
#{
	s = ""
	s.dump
}.taint
EOS
puts "ex1: " + ex1.inspect

ex2 = <<-EOS

#{
	s = ""
	s.dump
}.taint
EOS
puts "ex2: " + ex2.inspect

ex3 = <<-EOS

#{
	"".dump
}.taint
EOS
puts "ex3: " + ex3.inspect

のex2で、1.6と1.7では結果が異なります。

tam@minuano:~$ ruby -v a.rb
ruby 1.7.2 (2002-07-11) [i686-linux]
ex1: "\"\".taint\n"
ex2: "\n.taint\n"
ex3: "\n\"\".taint\n"

tam@minuano:~$ ruby16 -v a.rb
ruby 1.6.7 (2002-06-30) [i686-linux]
ex1: "\"\".taint\n"
ex2: "\n\"\".taint\n"
ex3: "\n\"\".taint\n"

原因の所在を突きとめるには絞りこみの足りない不十分な例で申しわけないのですが、
CGI#read_multipart(1.7版)でex2の出力結果のようなスクリプトがevalされるので、
パースエラーとなってしまいます:

/home/tam/ruby/ruby/lib/cgi.rb:865:in `read_multipart': (eval):3:in `read_multip
art': compile error (SyntaxError)
(eval):2: parse error
            .taint

以上、御報告まで。

それでは。