Actions
Feature #19723
closed[RFC] Deprecate/disallow passing `"|command..." values to open-uri's URI.open() method
Feature #19723:
[RFC] Deprecate/disallow passing `"|command..." values to open-uri's URI.open() method
Status:
Closed
Assignee:
-
Target version:
-
Description
Due to Kernel.open()
supporting opening pipe-commands (ex: "|command-here..."
) this has led to multiple 1 security 2 vulnerabilities 3, where malicious user-input eventually is passed to Kernel.open()
. One of the code-paths that malicious user-input can reach Kernel.open()
is via open-uri's URI.open()
method. RuboCop even recommends avoiding using URI.open()
in favor of uri = URI.parse(...); uri.open
to avoid accidentally opening malicious "|command..."
inputs. I propose that URI.open()
should not accept pipe-commands, as they are neither URIs nor files. One could even argue that URI.open()
should only accept URIs and never fallback to Kernel.open()
.
Actions