ruby/ruby — pull request #156 by spastorino (2012-08-12 16:16:29+00:00)
Title: Make ERB::Util.html_escape reuse CGI.escapeHTML

We just fixed this issue in Rails
https://groups.google.com/forum/#!msg/rubyonrails-security/kKGNeMrnmiY/r2yM7xy-G48J%5B1-25%5D

Ruby's ERB is not escaping single quotes and this could lead to
issues like ...

My Link!
being link = " '; alert(hax) "

OWASP suggest escaping &, <, >, ", ' and /
https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet#RULE_.231_-_HTML_Escape_Before_Inserting_Untrusted_Data_into_HTML_Element_Content

About / I don't think could lead to issues but that's another story.

You have the right code in CGI.escapeHTML
https://github.com/ruby/ruby/blob/c47cca2f/lib/cgi/util.rb#L36 so my
suggestion is to reuse CGI.escapeHTML from ERB::Util