File tree Expand file tree Collapse file tree 2 files changed +14
-0
lines changed
lib/sanitize/transformers Expand file tree Collapse file tree 2 files changed +14
-0
lines changed Original file line number Diff line number Diff line change @@ -48,6 +48,7 @@ def call(env)
4848 if css . strip . empty?
4949 node . unlink
5050 else
51+ css . gsub! ( '</' , '<\/' )
5152 node . children . unlink
5253 node << Nokogiri ::XML ::Text . new ( css , node . document )
5354 end
Original file line number Diff line number Diff line change 3939 it 'should not allow behaviors' do
4040 _ ( @s . properties ( %[behavior: url(xss.htc);] ) ) . must_equal ''
4141 end
42+
43+ describe 'sanitization bypass via CSS at-rule in HTML <style> element' do
44+ before do
45+ @s = Sanitize . new ( Sanitize ::Config ::RELAXED )
46+ end
47+
48+ it 'is not possible to prematurely end a <style> element' do
49+ assert_equal (
50+ %[<style>@media<\\ /style><iframe srcdoc='<script>alert(document.domain)<\\ /script>'>{}</style>] ,
51+ @s . fragment ( %[<style>@media</sty/**/le><iframe srcdoc='<script>alert(document.domain)</script>'></style>] )
52+ )
53+ end
54+ end
4255end
You can’t perform that action at this time.
0 commit comments