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

fix(deps): update dependency highlight.js to v10 [security] #178

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

renovate[bot]
Copy link

@renovate renovate bot commented Mar 7, 2022

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
highlight.js (source) ^9.12.0 -> ^10.0.0 age adoption passing confidence

GitHub Vulnerability Alerts

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:


Release Notes

highlightjs/highlight.js

v10.4.1

Compare Source

Security

  • (fix) Exponential backtracking fixes for: Josh Goebel
    • cpp
    • handlebars
    • gams
    • perl
    • jboss-cli
    • r
    • erlang-repl
    • powershell
    • routeros
  • (fix) Polynomial backtracking fixes for: Josh Goebel
    • asciidoc
    • reasonml
    • latex
    • kotlin
    • gcode
    • d
    • aspectj
    • moonscript
    • coffeescript/livescript
    • csharp
    • scilab
    • crystal
    • elixir
    • basic
    • ebnf
    • ruby
    • fortran/irpf90
    • livecodeserver
    • yaml
    • x86asm
    • dsconfig
    • markdown
    • ruleslanguage
    • xquery
    • sqf

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:

  • (chore) requireLanguage is deprecated.
    • Prefer getLanguage (with custom error handling) or built-time dependencies.
    • See Library API for more information.

Parser:

New Languages:

Language Improvements:

  • enh(shell) Recognize prompts which contain tilde ~ (#​2859) Guillaume Grossetie
  • enh(shell) Add support for multiline commands with line continuation \ (#​2861) Guillaume Grossetie
  • enh(autodetect) Over 30+ improvements to auto-detect (#​2745) Josh Goebel
    • 4-5% improvement in auto-detect against large sample set
    • properties, angelscript, lsl, javascript, n1ql, ocaml, ruby
    • protobuf, hy, scheme, crystal, yaml, r, vbscript, groovy
    • python, java, php, lisp, matlab, clojure, csharp, css
  • fix(r) fixed keywords not properly spaced (#​2852) Josh Goebel
  • fix(javascript) fix potential catastrophic backtracking (#​2852) Josh Goebel
  • fix(livescript) fix potential catastrophic backtracking (#​2852) Josh Goebel
  • bug(xml) XML grammar was far too imprecise/fuzzy Josh Goebel
  • enh(xml) Improve precision to prevent false auto-detect positives Josh Goebel
  • fix(js/ts) Prevent for/while/if/switch from falsly matching as functions (#​2803) Josh Goebel
  • enh(julia) Update keyword lists for Julia 1.x (#​2781) Fredrik Ekre
  • enh(python) Match numeric literals per the language reference Richard Gibson
  • enh(ruby) Match numeric literals per language documentation Richard Gibson
  • enh(javascript) Match numeric literals per ECMA-262 spec Richard Gibson
  • enh(java) Match numeric literals per Java Language Specification Richard Gibson
  • enh(swift) Match numeric literals per language reference Richard Gibson
  • enh(php) highlight variables (#​2785) Taufik Nurrohman
  • fix(python) Handle comments on decorators (#​2804) Jonathan Sharpe
  • enh(diff) improve highlighting of diff for git patches [Florian Bezdeka][]
  • fix(llvm) lots of small improvements and fixes (#​2830) Josh Goebel
  • enh(mathematica) Rework entire implementation Patrick Scheibe
    • Correct matching of the many variations of Mathematica's numbers
    • Matching of named-characters aka special symbols like \[Gamma]
    • Updated list of version 12.1 built-in symbols
    • Matching of patterns, slots, message-names and braces
  • fix(swift) Handle keywords that start with # Marcus Ortiz
  • enh(swift) Match some keyword Marcus Ortiz
  • enh(swift) Match @main attribute Marcus Ortiz

Dev Improvements:

  • chore(dev) add theme picker to the tools/developer tool (#​2770) Josh Goebel
  • fix(dev) the Vue.js plugin no longer throws an exception when hljs is not in the global namespace Kyle Brown

New themes:

v10.3.2: - Oops, "Javascript".

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:

  • fix(Safari) Remove currently unsupported look-behind regex (fix) Josh Goebel

v10.3.0

Compare Source

Language Improvements:

  • enh(latex) Complete ground up rewrite of LaTex grammar schtandard
  • fix(cpp) implement backslash line continuation in comments (#​2757) Konrad Rudolph
  • fix(cpp) improve parsing issues with templates (#​2752) [Josh Goebel][]
  • enh(cpp) add support for enum (struct|class) and union (#​2752) [Josh Goebel][]
  • fix(js/ts) Fix nesting of {} inside template literals SUBST expression (#​2748) [Josh Goebel][]
  • enh(js/ts) Highlight class methods as functions (#​2727) [Josh Goebel][]
  • fix(js/ts) constructor is now highlighted as a function title (not keyword) (#​2727) [Josh Goebel][]
  • fix(c-like) preprocessor directives not detected after else (#​2738) [Josh Goebel][]
  • enh(javascript) allow # for private class fields (#​2701) Chris Krycho
  • fix(js) prevent runaway regex (#​2746) [Josh Goebel][]
  • fix(bash) enh(bash) allow nested params (#​2731) [Josh Goebel][]
  • fix(python) Fix highlighting of keywords and strings (#​2713, #​2715) Konrad Rudolph
  • fix(fsharp) Prevent (*) from being detected as a multi-line comment [Josh Goebel][]
  • enh(bash) add support for heredocs (#​2684) [Josh Goebel][]
  • enh(r) major overhaul of the R language grammar (and fix a few bugs) (#​2680) Konrad Rudolph
  • enh(csharp) Add all C# 9 keywords, and other missing keywords (#​2679) David Pine
  • enh(objectivec) Add objective-c++ and obj-c++ aliases for Objective-C [Josh Goebel][]
  • enh(java) Add support for record (#​2685) [Josh Goebel][]
  • fix(csharp) prevent modifier keywords wrongly flagged as title (#​2683) [Josh Goebel][]
  • enh(axapta) Update keyword list for Axapta (X++) (#​2686) Ryan Jonasson
  • fix(fortran) FORTRAN 77-style comments (#​2677) Philipp Engel
  • fix(javascript) Comments inside params should be highlighted (#​2702) [Josh Goebel][]
  • fix(scala) Comments inside class header should be highlighted (#​1559) [Josh Goebel][]
  • fix(c-like) Correctly highlight modifiers (final) in class declaration (#​2696) [Josh Goebel][]
  • enh(angelscript) Improve heredocs, numbers, metadata blocks (#​2724) Melissa Geels
  • enh(javascript) Implement Numeric Separators (#​2617) Antoine du Hamel
  • enh(typescript) TypeScript also gains support for numeric separators (#​2617) Antoine du Hamel
  • enh(php) Add support for PHP 8 match keyword and add php8 as an alias (#​2733) Ayesh Karunaratne
  • fix(handlebars) Support if else keyboards (#​2659) Tom Wallace

Deprecations:

  • useBR option deprecated and will be removed in v11.0. (#​2559) [Josh Goebel][]

v10.2.1

Compare Source

Parser Engine:

v10.2.0

Compare Source

Parser Engine:

  • (fix) When ignoring a potential match highlighting can terminate early (#​2649) Josh Goebel

New themes:

Deprecations:

Big picture:

Language Improvements:

v10.1.2

Compare Source

Fixes:

  • fix(night) Prevent object prototype values from being returned by getLanguage (#​2636) night

v10.1.1

Compare Source

Fixes:

v10.1.0

Compare Source

New themes:

Parser Engine:

Deprecations:

Language Improvements:

v10.0.3

Compare Source

v10.0.2

Compare Source

Brower build:

Parser Engine Changes:

v10.0.1

Compare Source

Parser Engine Changes:

v10.0.0

Compare Source

New languages:

  • add(php-template) Explicit language to detect PHP templates (vs xml) Josh Goebel
  • enh(python) Added python-repl for Python REPL sessions
  • add(never) Added 3rd party Never language support

New themes:

Parser Engine Changes:

Language Improvements:

Developer Tools:

  • added Dockerfile for optionally developing with a container

v9.18.1

Compare Source

Grammar Improvements:

v9.18.0

Compare Source

New languages:

  • none.

New themes:

  • none.

Core Changes:

  • none.

Language Improvements:

Developer Tools:

v9.17.1

Compare Source

Fixes:

v9.17.0

Compare Source

New languages:

  • none.

New themes:

Core Improvements:

Language Improvements:

v9.16.2

Compare Source

New languages:
none.

New styles:
none.

Improvements:

  • fix(arduino) Resolves issue with arduino.js not being "use strict" safe (#​2247)

v9.16.1

Compare Source

New languages:
none.

New styles:

Improvements:

  • Add CLI tool to quickly check for relevance conflicts Mark Ellis (#​1554)
  • enhance(twig) update list of filter and tags (#​2090)
  • fix(crystal): correctly highlight !~ method definition (#​2222)
  • fix dropping characters if we choke up on a 0-width match (#​2219)
  • (accesslog) improve accesslog relevancy scoring (#​2172)
  • fix(shell): fix parsing of prompts with forward slash (#​2218)
  • improve parser to properly support look-ahead regex in begin matchers (#​2135)
  • blacklist super-common keywords from having relevance (#​2179)
  • fix(swift): support for @dynamicMemberLookup and @propertyWrapper (#​2202)
  • fix: endWithParent inside starts now always works (#​2201)
  • fix(typescript): constructor in declaration doesn't break highlighting
  • fix(typescript): only match function keyword as a separate identifier (#​2191)
  • feature(arduino) make arduino a super-set of cpp grammar
  • fix(javascript): fix object attributes immediately following line comments
  • fix(xml): remove vbscript as potential script tag subLanguage
  • fix(Elixir): improve regex for numbers
  • fix(YAML): improve matching for keys, blocks and numbers
  • fix(Pony): improve regex for numbers
  • fix(handlebars): add support for raw-blocks, and triple-mustaches(#​2175)
  • fix(handlebars): fix parsing of block-comments containing closing mustaches (#​2175)
  • fix(handlebars): add support for segment-literal notation, and escaped mustaches (#​2184)
  • JSON: support for comments in JSON (#​2016)
  • fix(cpp): improve string literal matching
  • fix(highlight.js): omit empty span-tags in the output (#​2182)
  • fix(Go): improve function declaration matching
  • fix(python): added support for f-string literal curly braces (#​2195)
  • fix(cpp): add future built-in (#​1610)
  • fix(python): support comments within function parameters (#​2214)

v9.15.10

Compare Source

New languages:
none.
New styles:
none.
Improvements:

  • support for ruby's squiggly heredoc (#​2049)
  • support css custom properties (#​2082)
  • fix(PureBASIC): update to 5.60 (#​1508)
  • fix(Kotlin): parenthesized types in function declaration (#​2107)
  • fix(Kotlin): nested comment (#​2104)
  • fix(isbl): contains key typo (#​2103)
  • fix(github-gist.css): match Github styles (#​2100)
  • fix(elm): update to latest elm syntax (#​2088)
  • fix: Support highlighting inline HTML and CSS tagged template strings in JS and TS (#​2105)
  • feat(YAML): add YAML to common languages (#​1952)
  • feat(xml): Add support for Windows Script File (.wsf), inline VBScript in XML script tags (#​1690)

v9.15.9

Compare Source

Improvements:

  • fix(AutoHotkey): order and extended highlighting (#​1579)
  • fix(Go): correctly highlight hex numbers, rather than stopping at last 'd' or 'f'. (#​2060)
  • fix(Mathematica): Improvements to language (#​2065)
  • fix(Node): Adds SCSS build (#​2079)
  • fix(Rust): update keywords (#​2052)
  • fix(Stata): Added keywords for the meta-analysis suite introduced in Stata 16 (#​2081)
  • fix(Bash): escape double quotes (#​2048)

v9.15.8

Compare Source

New languages:
none.
New styles:
none.
Improvements:

  • fix(bash): revert escaped double quotes - broke Firefox/Safari.

v9.15.7

Compare Source

New languages:
none.
New styles:
none.
Improvements:

  • fix(powershell): Add cmdlets (#​2022)
  • fix(Bash): escaped double quotes (#​2041)
  • fix(c++): add aliases 'hh', 'hxx', 'cxx' (#​2017)
  • fix(ini/toml): Support comments on the same line. (#​2039)
  • fix(JSX): not rendering well in a function without parentheses. (#​2024)
  • fix(LiveCode): language definition update (#​2021)
  • fix(markdown): indented lists (#​2004)
  • fix(styles/school-book): don't style all the pre, use .hljs instead (#​2034)
  • fix(JSX): Modify JSX tag detection to use XML language regex in place of simplistic \w+

v9.15.6

Compare Source

New languages:
none.
New styles:
none.
Improvements:

  • Move dependencies to be devDependencies.
  • Fixed security issues in dev dependencies.

v9.15.5

Compare Source

New languages:
none.
New styles:
none.
Improvements:
🔥 Hot fix: updated build tool.

v9.15.2

Compare Source

New languages:
none.
New styles:
none.
Improvements:
🔥 Hot fix that was preventing highlight.js from installing.

v9.15.1

Compare Source

New languages:
none.
New styles:
none.
Improvements:

  • support for ruby's squiggly heredoc (#​2049)
  • support css custom properties (#​2082)
  • fix(PureBASIC): update to 5.60 (#​1508)
  • fix(Kotlin): parenthesized types in function declaration (#​2107)
  • fix(Kotlin): nested comment (#​2104)
  • fix(isbl): contains key typo (#​2103)
  • fix(github-gist.css): match Github styles (#​2100)
  • fix(elm): update to latest elm syntax (#​2088)
  • fix: Support highlighting inline HTML and CSS tagged template strings in JS and TS (#​2105)
  • feat(YAML): add YAML to common languages (#​1952)
  • feat(xml): Add support for Windows Script File (.wsf), inline VBScript in XML script tags (#​1690)

v9.14.2

Compare Source

New languages:
none.
New styles:
none.
Improvements:

  • Gauss fixed to stop global namespace pollution Scott Hyndman.
  • fix(Tcl): removed apostrophe string delimiters (don't exist)

v9.14.1

Compare Source

New languages:
none.
New styles:
none.
Improvements:

  • Pony: language improvements (#​1958)

v9.13.1

Compare Source

Improvements:

  • C# function declarations no longer include trailing whitespace, by JeremyTCD
  • Added new and missing keywords to AngelScript, by Melissa Geels
  • TypeScript decorator factories highlighting fix, by Antoine Boisier-Michaud
  • Added support for multiline strings to Swift, by Alejandro Isaza
  • Fixed issue that was causing some minifiers to fail.
  • Fixed autoDetection to accept language aliases.

v9.13.0

Compare Source

New languages:

  • ArcGIS Arcade by [John Foster][]
  • AngelScript by Melissa Geels
  • GML by [meseta][]
  • isbl built-in language DIRECTUM and Conterra by [Dmitriy Tarasov][].
  • PostgreSQL SQL dialect and PL/pgSQL language by [Egor Rogov][].
  • ReasonML by [Gidi Meir Morris][]
  • SAS by [Mauricio Caceres Bravo][]
  • Plaintext by [Egor Rogov][]
  • .properties by [bostko][] and [Egor Rogov][]

New styles:

  • a11y-dark theme by [Eric Bailey][]
  • a11y-light theme by [Eric Bailey][]
  • An Old Hope by [Gustavo Costa][]
  • Atom One Dark Reasonable by [Gidi Meir Morris][]
  • isbl editor dark by [Dmitriy Tarasov][]
  • isbl editor light by [Dmitriy Tarasov][]
  • Lightfair by [Tristian Kelly][]
  • [Nord][nord-highlightjs] by [Arctic Ice Studio][]
  • 🦄 Shades of Purple by [Ahmad Awais][]

Improvements:

  • New attribute endSameAsBegin for nested constructs with

Configuration

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

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, 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 added the chore label Mar 7, 2022
@renovate renovate bot force-pushed the renovate/npm-highlight.js-vulnerability branch 9 times, most recently from 591b387 to 7f8937c Compare March 7, 2022 20:45
@renovate renovate bot changed the title fix(deps): update dependency highlight.js to v10 [security] fix(deps): update dependency highlight.js to v10 [security] - autoclosed Apr 27, 2022
@renovate renovate bot closed this Apr 27, 2022
@renovate renovate bot deleted the renovate/npm-highlight.js-vulnerability branch April 27, 2022 12:04
@renovate renovate bot changed the title fix(deps): update dependency highlight.js to v10 [security] - autoclosed fix(deps): update dependency highlight.js to v10 [security] Apr 27, 2022
@renovate renovate bot restored the renovate/npm-highlight.js-vulnerability branch April 27, 2022 14:38
@renovate renovate bot reopened this Apr 27, 2022
@renovate renovate bot changed the title fix(deps): update dependency highlight.js to v10 [security] fix(deps): update dependency highlight.js to v10 [security] - autoclosed Apr 27, 2022
@renovate renovate bot closed this Apr 27, 2022
@renovate renovate bot deleted the renovate/npm-highlight.js-vulnerability branch April 27, 2022 17:12
@renovate renovate bot changed the title fix(deps): update dependency highlight.js to v10 [security] - autoclosed fix(deps): update dependency highlight.js to v10 [security] Apr 27, 2022
@renovate renovate bot restored the renovate/npm-highlight.js-vulnerability branch April 27, 2022 19:42
@renovate renovate bot reopened this Apr 27, 2022
@renovate renovate bot force-pushed the renovate/npm-highlight.js-vulnerability branch 3 times, most recently from 6a2955f to 0aba95a Compare April 28, 2022 01:19
@renovate renovate bot force-pushed the renovate/npm-highlight.js-vulnerability branch from 0aba95a to b4c86c6 Compare April 28, 2022 01:34
@renovate renovate bot changed the title fix(deps): update dependency highlight.js to v10 [security] fix(deps): update dependency highlight.js to v10 [SECURITY] Jun 27, 2022
@renovate renovate bot changed the title fix(deps): update dependency highlight.js to v10 [SECURITY] fix(deps): update dependency highlight.js to v10 [security] Sep 25, 2022
@renovate
Copy link
Author

renovate bot commented Mar 25, 2023

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

Warning: custom changes will be lost.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant