[PATCH] Make it more strict to interpret some headers
authorYusuke Endoh <mame@ruby-lang.org>
Tue, 29 Sep 2020 04:15:58 +0000 (13:15 +0900)
committerUtkarsh Gupta <utkarsh@debian.org>
Sun, 19 Sep 2021 03:40:46 +0000 (04:40 +0100)
Some regexps were too tolerant.

Gbp-Pq: Name CVE-2020-25613.patch

lib/webrick/httprequest.rb

index 6fc85a44e8912cb455b0eeebc81ee208808ef69f..86140abd67e9d0551a97496bb49ba192d94173f9 100644 (file)
@@ -226,9 +226,9 @@ module WEBrick
         raise HTTPStatus::BadRequest, "bad URI `#{@unparsed_uri}'."
       end
 
-      if /close/io =~ self["connection"]
+      if /\Aclose\z/io =~ self["connection"]
         @keep_alive = false
-      elsif /keep-alive/io =~ self["connection"]
+      elsif /\Akeep-alive\z/io =~ self["connection"]
         @keep_alive = true
       elsif @http_version < "1.1"
         @keep_alive = false
@@ -475,7 +475,7 @@ module WEBrick
       return unless socket
       if tc = self['transfer-encoding']
         case tc
-        when /chunked/io then read_chunked(socket, block)
+        when /\Achunked\z/io then read_chunked(socket, block)
         else raise HTTPStatus::NotImplemented, "Transfer-Encoding: #{tc}."
         end
       elsif self['content-length'] || @remaining_size