]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
fix(collapse): xss in parent option
authorJohann-S <johann.servoire@gmail.com>
Wed, 30 May 2018 07:46:50 +0000 (09:46 +0200)
committerJohann-S <johann.servoire@gmail.com>
Fri, 1 Jun 2018 07:10:25 +0000 (09:10 +0200)
js/src/collapse.js
js/tests/visual/collapse.html

index a756542273fb7328ce2253447783218d02f91bfe..2c48cf545205a13954abe2db2abb28ef71d8d4ed 100644 (file)
@@ -289,7 +289,7 @@ const Collapse = (($) => {
           parent = this._config.parent[0]
         }
       } else {
-        parent = $(this._config.parent)[0]
+        parent = document.querySelector(this._config.parent)
       }
 
       const selector =
index 3005920957de504f4706b57319ea20f7b664db9b..24698d764f123778f6e09369b66953a9a7fd2ba6 100644 (file)
             </div>
           </div>
         </div>
+        <div class="card">
+          <div class="card-header" role="tab" id="headingFour">
+            <h5 class="mb-0">
+              <a class="collapsed" data-toggle="collapse" href="#collapseFour" aria-expanded="false" aria-controls="collapseFour">
+                Collapsible Group Item with XSS in data-parent
+              </a>
+            </h5>
+          </div>
+          <div id="collapseFour" class="collapse" data-parent="<img src=1 onerror=alert(123) />" role="tabpanel" aria-labelledby="headingFour">
+            <div class="card-body">
+              Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
+            </div>
+          </div>
+        </div>
       </div>
     </div>