Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): update dependency highlight.js to 10.4.1 [security] (master) - autoclosed #1259

Closed

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jan 28, 2022

Mend Renovate

This PR contains the following updates:

Package Change
highlight.js 9.13.1 -> 10.4.1

GitHub Vulnerability Alerts

CVE-2020-26237

Impact

Affected versions of this package are vulnerable to Prototype Pollution. A malicious HTML code block can be crafted that will result in prototype pollution of the base object's prototype during highlighting. If you allow users to insert custom HTML code blocks into your page/app via parsing Markdown code blocks (or similar) and do not filter the language names the user can provide you may be vulnerable.

The pollution should just be harmless data but this can cause problems for applications not expecting these properties to exist and can result in strange behavior or application crashes, i.e. a potential DOS vector.

If your website or application does not render user provided data it should be unaffected.

Patches

Versions 9.18.2 and 10.1.2 and newer include fixes for this vulnerability. If you are using version 7 or 8 you are encouraged to upgrade to a newer release.

Workarounds

Patch your library

Manually patch your library to create null objects for both languages and aliases:

const HLJS = function(hljs) {
  // ...
  var languages = Object.create(null);
  var aliases = Object.create(null);

Filter out bad data from end users:

Filter the language names that users are allowed to inject into your HTML to guarantee they are valid.

References

For more information

If you have any questions or comments about this advisory:

GHSA-7wwv-vh3v-89cq

Impact: Potential ReDOS vulnerabilities (exponential and polynomial RegEx backtracking)

oswasp:

The Regular expression Denial of Service (ReDoS) is a Denial of Service attack, that exploits the fact that most Regular Expression implementations may reach extreme situations that cause them to work very slowly (exponentially related to input size). An attacker can then cause a program using a Regular Expression to enter these extreme situations and then hang for a very long time.

If are you are using Highlight.js to highlight user-provided data you are possibly vulnerable. On the client-side (in a browser or Electron environment) risks could include lengthy freezes or crashes... On the server-side infinite freezes could occur... effectively preventing users from accessing your app or service (ie, Denial of Service).

This is an issue with grammars shipped with the parser (and potentially 3rd party grammars also), not the parser itself. If you are using Highlight.js with any of the following grammars you are vulnerable. If you are using highlightAuto to detect the language (and have any of these grammars registered) you are vulnerable. Exponential grammars (C, Perl, JavaScript) are auto-registered when using the common grammar subset/library require('highlight.js/lib/common') as of 10.4.0 - see https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@10.4.0/build/highlight.js

All versions prior to 10.4.1 are vulnerable, including version 9.18.5.

Grammars with exponential backtracking issues:

  • c-like (c, cpp, arduino)
  • handlebars (htmlbars)
  • gams
  • perl
  • jboss-cli
  • r
  • erlang-repl
  • powershell
  • routeros
  • livescript (10.4.0 and 9.18.5 included this fix)
  • javascript & typescript (10.4.0 included partial fixes)

And of course any aliases of those languages have the same issue. ie: hpp is no safer than cpp.

Grammars with polynomial backtracking issues:

  • kotlin
  • gcode
  • d
  • aspectj
  • moonscript
  • coffeescript/livescript
  • csharp
  • scilab
  • crystal
  • elixir
  • basic
  • ebnf
  • ruby
  • fortran/irpf90
  • livecodeserver
  • yaml
  • x86asm
  • dsconfig
  • markdown
  • ruleslanguage
  • xquery
  • sqf

And again: any aliases of those languages have the same issue. ie: ruby and rb share the same ruby issues.

Patches

  • Version 10.4.1 resolves these vulnerabilities. Please upgrade.

Workarounds / Mitigations

  • Discontinue use the affected grammars. (or perhaps use only those with poly vs exponential issues)
  • Attempt cherry-picking the grammar fixes into older versions...
  • Attempt using newer CDN versions of any affected languages. (ie using an older CDN version of the library with newer CDN grammars). Your mileage may vary.

References

For more information

If you have any questions or comments about this advisory:


Configuration

📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot force-pushed the renovate/master-npm-highlight.js-vulnerability branch 4 times, most recently from b375ee1 to 3f3a88e Compare January 28, 2022 17:24
@renovate renovate bot force-pushed the renovate/master-npm-highlight.js-vulnerability branch 2 times, most recently from 65de9ac to e456641 Compare February 5, 2022 08:17
@renovate renovate bot force-pushed the renovate/master-npm-highlight.js-vulnerability branch from e456641 to 846d10e Compare February 19, 2022 14:36
@renovate renovate bot force-pushed the renovate/master-npm-highlight.js-vulnerability branch from 846d10e to 6be250a Compare February 28, 2022 05:35
@renovate renovate bot force-pushed the renovate/master-npm-highlight.js-vulnerability branch 2 times, most recently from 10de68f to 6d0d04b Compare June 19, 2022 03:02
@renovate renovate bot changed the title chore(deps): update dependency highlight.js to 10.4.1 [security] (master) chore(deps): update dependency highlight.js to 10.4.1 [SECURITY] (master) Jun 27, 2022
@renovate renovate bot changed the title chore(deps): update dependency highlight.js to 10.4.1 [SECURITY] (master) chore(deps): update dependency highlight.js to 10.4.1 [security] (master) Jun 28, 2022
@renovate renovate bot force-pushed the renovate/master-npm-highlight.js-vulnerability branch 2 times, most recently from 18d71d9 to 131a088 Compare July 21, 2022 19:50
@renovate renovate bot force-pushed the renovate/master-npm-highlight.js-vulnerability branch 4 times, most recently from 11b18e6 to 2f02f81 Compare February 1, 2023 07:19
@renovate renovate bot force-pushed the renovate/master-npm-highlight.js-vulnerability branch from 2f02f81 to 54228b0 Compare February 4, 2023 17:36
@renovate renovate bot force-pushed the renovate/master-npm-highlight.js-vulnerability branch 5 times, most recently from 1831f76 to 5eb87ab Compare February 21, 2023 11:50
@renovate renovate bot force-pushed the renovate/master-npm-highlight.js-vulnerability branch 2 times, most recently from 4c2acb4 to d5c1ae4 Compare February 26, 2023 21:20
@renovate renovate bot force-pushed the renovate/master-npm-highlight.js-vulnerability branch 2 times, most recently from ff17abd to 1c976f4 Compare March 20, 2023 11:56
@renovate renovate bot changed the title chore(deps): update dependency highlight.js to 10.4.1 [security] (master) chore(deps): update dependency highlight.js to 10.4.1 [security] (master) - autoclosed Mar 24, 2023
@renovate renovate bot closed this Mar 24, 2023
@renovate renovate bot deleted the renovate/master-npm-highlight.js-vulnerability branch April 3, 2023 11:04
@renovate renovate bot changed the title chore(deps): update dependency highlight.js to 10.4.1 [security] (master) - autoclosed chore(deps): update dependency highlight.js to 10.4.1 [security] (master) Apr 3, 2023
@renovate renovate bot reopened this Apr 3, 2023
@renovate renovate bot restored the renovate/master-npm-highlight.js-vulnerability branch April 3, 2023 18:03
@renovate renovate bot force-pushed the renovate/master-npm-highlight.js-vulnerability branch from 00df949 to 20e5e36 Compare April 3, 2023 23:34
@renovate renovate bot changed the title chore(deps): update dependency highlight.js to 10.4.1 [security] (master) chore(deps): update dependency highlight.js to 10.4.1 [security] (master) - autoclosed Apr 17, 2023
@renovate renovate bot closed this Apr 17, 2023
@renovate renovate bot deleted the renovate/master-npm-highlight.js-vulnerability branch April 17, 2023 12:03
@renovate renovate bot changed the title chore(deps): update dependency highlight.js to 10.4.1 [security] (master) - autoclosed chore(deps): update dependency highlight.js to 10.4.1 [security] (master) Apr 18, 2023
@renovate renovate bot reopened this Apr 18, 2023
@renovate renovate bot restored the renovate/master-npm-highlight.js-vulnerability branch April 18, 2023 09:41
@renovate renovate bot force-pushed the renovate/master-npm-highlight.js-vulnerability branch from 20e5e36 to f7b6d65 Compare April 18, 2023 15:15
@renovate renovate bot changed the title chore(deps): update dependency highlight.js to 10.4.1 [security] (master) chore(deps): update dependency highlight.js to 10.4.1 [security] (master) - autoclosed Apr 22, 2023
@renovate renovate bot closed this Apr 22, 2023
@renovate renovate bot deleted the renovate/master-npm-highlight.js-vulnerability branch April 22, 2023 02:17
@renovate renovate bot changed the title chore(deps): update dependency highlight.js to 10.4.1 [security] (master) - autoclosed chore(deps): update dependency highlight.js to 10.4.1 [security] (master) Apr 22, 2023
@renovate renovate bot reopened this Apr 22, 2023
@renovate renovate bot restored the renovate/master-npm-highlight.js-vulnerability branch April 22, 2023 06:46
@renovate renovate bot force-pushed the renovate/master-npm-highlight.js-vulnerability branch 2 times, most recently from 1d76bef to 430f687 Compare April 27, 2023 17:13
@renovate renovate bot force-pushed the renovate/master-npm-highlight.js-vulnerability branch 2 times, most recently from 0f38f96 to bd11dce Compare May 8, 2023 16:16
@renovate renovate bot force-pushed the renovate/master-npm-highlight.js-vulnerability branch from bd11dce to 262c639 Compare May 16, 2023 06:48
@renovate renovate bot force-pushed the renovate/master-npm-highlight.js-vulnerability branch 2 times, most recently from 1f571dc to 48086b5 Compare May 26, 2023 14:36
@renovate renovate bot force-pushed the renovate/master-npm-highlight.js-vulnerability branch from 48086b5 to b89f72f Compare May 28, 2023 07:06
@renovate renovate bot changed the title chore(deps): update dependency highlight.js to 10.4.1 [security] (master) chore(deps): update dependency highlight.js to 10.4.1 [security] (master) - autoclosed May 28, 2023
@renovate renovate bot closed this May 28, 2023
@renovate renovate bot deleted the renovate/master-npm-highlight.js-vulnerability branch May 28, 2023 09:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

0 participants