Skip to content
This repository has been archived by the owner on Dec 19, 2023. It is now read-only.

Fixed HTML Injection #2

Merged
merged 1 commit into from Aug 20, 2020
Merged

Fixed HTML Injection #2

merged 1 commit into from Aug 20, 2020

Conversation

mufeedvh
Copy link

馃搳 Metadata *

Bounty URL: https://www.huntr.dev/bounties/1-npm-jquery-confirm

鈿欙笍 Description *

The project jquery-confirm adds classes to HTML elements without any validation causing an HTML Injection.

馃捇 Technical Description *

The code dynamically creates an HTML element for the setIcon and closeIconClass actions and adds classes directly to the elements making it vulnerable to an HTML Injection Vulnerability.

The implementation should not be like this and sanitizing/escaping the input class is also not the way as there is a dedicated function in JQuery to do just what we want == addClass().

This is also suggested by the reporter of this vulnerability: craftpip#508 (comment).

馃悰 Proof of Concept (PoC) *

<html>
<head>
   <title>jquery-confirm HTML Injection PoC</title>
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
   <script src="js/jquery-confirm.js"></script>
   <script>
      $.confirm().setIcon('"><img src onerror="alert(1337)"><"')
   </script>
</head>
<body>
    ...
</body>
</html>

馃敟 Proof of Fix (PoF) *

As suggested by the reporter, I implemented the JQuery dedicated function addClass() to add class to the particular dynamically created element completely preventing any bypasses possible.

馃憤 User Acceptance Testing (UAT)

Just added a JQuery function on a JQuery project. 馃槈

@JamieSlome JamieSlome requested review from Mik317 and toufik-airane and removed request for toufik-airane and Mik317 August 16, 2020 08:57
@JamieSlome JamieSlome merged commit 79cf205 into 418sec:master Aug 20, 2020
@huntr-helper
Copy link
Member

Congratulations mufeedvh - your fix has been selected! 馃帀

Thanks for being part of the community & helping secure the world's open source code.
If you have any questions, please respond in the comments section. Your bounty is on its way - keep hunting!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
3 participants