fix(deps): update dependency highlight.js to v10.4.1 [security] #189
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
10.0.3
->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
andaliases
: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:
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.All versions prior to 10.4.1 are vulnerable, including version 9.18.5.
Grammars with exponential backtracking issues:
And of course any aliases of those languages have the same issue. ie:
hpp
is no safer thancpp
.Grammars with polynomial backtracking issues:
And again: any aliases of those languages have the same issue. ie:
ruby
andrb
share the same ruby issues.Patches
Workarounds / Mitigations
References
For more information
If you have any questions or comments about this advisory:
Release Notes
highlightjs/highlight.js
v10.4.1
Compare Source
Security
Very grateful to Michael Schmidt for all the help.
v10.4.0
Compare Source
A largish release with many improvements and fixes from quite a few different contributors. Enjoy!
Deprecations:
requireLanguage
is deprecated.getLanguage
(with custom error handling) or built-time dependencies.Parser:
beginKeywords
support (#2813) Josh GoebelclassNameAliases
for more complex grammars Josh GoebelclassNameAliases
for more complex grammars Josh GoebelNew Languages:
node-repl
for Node.js REPL sessions (#2792) Marat NagayevLanguage Improvements:
~
(#2859) Guillaume Grossetie\
(#2861) Guillaume Grossetie\[Gamma]
#
Marcus Ortizsome
keyword Marcus Ortiz@main
attribute Marcus OrtizDev Improvements:
New themes:
v10.3.2
Compare Source
Tiny tiny release, just to fix the website incorrectly not listing Javascript
in the list of languages you could choose for a custom build. NPM and CDN
build should not have been affected so 10.3.1 is effectively the same as
10.3.2 for those builds.
If you made a custom build from the website with 10.3 or 10.3.1 you may
want to check and make sure it includes Javascript, and if not, build it again.
v10.3.1
Compare Source
Prior version let some look-behind regex sneak in, which does not work
yet on Safari. This release removes those incompatible regexes.
Fix:
v10.3.0
Compare Source
Language Improvements:
enum (struct|class)
andunion
(#2752) Josh Goebel{}
inside template literals SUBST expression (#2748) Josh Goebelconstructor
is now highlighted as a function title (not keyword) (#2727) Josh Goebel#
for private class fields (#2701) Chris Krycho(*)
from being detected as a multi-line comment Josh Goebelobjective-c++
andobj-c++
aliases for Objective-C Josh Goebelrecord
(#2685) Josh Goebeltitle
(#2683) Josh Goebelfinal
) in class declaration (#2696) Josh Goebelmatch
keyword and addphp8
as an alias (#2733) Ayesh KarunaratneDeprecations:
useBR
option deprecated and will be removed in v11.0. (#2559) Josh Goebelv10.2.1
Compare Source
Parser Engine:
fix(parser) complete fix for resuming matches from same index (#2678) Josh Goebel
Josh Goebel: https://github.com/yyyc514
v10.2.0
Compare Source
Parser Engine:
New themes:
Deprecations:
fixMarkup
is now deprecated and will be removed in v11.0. (#2534) Josh GoebelBig picture:
Language Improvements:
init
andrecord
keywords for C# 9.0 (#2660) Youssef Victorarguments
keyword and fixenumeration
keyword (#2619) Andrew JankegetLanguage
(#2636) nightenum
, which will identify as aclass
now (#2643) ezksdv10.1.2
Compare Source
Fixes:
getLanguage
(#2636) nightv10.1.1
Compare Source
Fixes:
index.d.ts is not a module
error (#2603) Josh Goebelv10.1.0
Compare Source
New themes:
Parser Engine:
keywords.$pattern
key to grammar definitions (#2519) Josh GoebelregisterAliases
method (#2540) Taufik Nurrohmanon:begin
callback for modes (#2261) Josh Goebelon:end
callback for modes (#2261) Josh GoebelEND_SAME_AS_BEGIN
mode to replaceendSameAsBegin
parser attribute (#2261) Josh GoebelfixMarkup
would rarely destroy markup whenuseBR
was enabled (#2532) Josh GoebelDeprecations:
htmlbars
grammar is now deprecated. Usehandlebars
instead. (#2344) Nils KnappmeierhighlightBlock
result.re
deprecated. Useresult.relevance
instead. (#2552) Josh Goebelresult.second_best.re
=>result.second_best.relevance
(#2552)lexemes
is now deprecated in favor ofkeywords.$pattern
key (#2519) Josh GoebelendSameAsBegin
is now deprecated. (#2261) Josh GoebelLanguage Improvements:
readonly
keyword (#2562) Martin (Lhoerion)OPTIMIZE:
andHACK:
to the labels highlighted inside comments Josh Goebelpair
,make_pair
,priority_queue
as built-ins (#2538) Hankun Linpriority_queue
pair
as cpp containers (#2541) Hankun Linset
keyword conflicting with setTimeout, etc. (#2514) Vania Kucher=>
function with nested()
in params now works (#2502) Josh Goebel=>
function with nested()
in params now works (#2502) Josh Goebel@objcMembers
was being partially highlighted (#2543) Nick Randalllate
andrequired
keywords, theNever
built-in type, and nullable built-in types (#2550) Sam RawlinsRenovate configuration
📅 Schedule: "" in timezone Asia/Tokyo.
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻️ Rebasing: Renovate will not automatically rebase this PR, because other commits have been found.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.