fix(dependencies): update dependency vega to v5.23.0 [security] #360
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:
5.22.0
->5.23.0
GitHub Vulnerability Alerts
CVE-2023-26487
Summary
Vega's
lassoAppend
function:lassoAppend
accepts 3 arguments and internally invokespush
function on the 1st argument specifying array consisting of 2nd and 3rd arguments aspush
call argument. The type of the 1st argument is supposed to be an array, but it's not enforced.This makes it possible to specify any object with a
push
function as the 1st argument,push
function can be set to any function that can be access viaevent.view
(no all such functions can be exploited due to invalid context or signature, but some can, e.g.console.log
).Details
The issue is that
lassoAppend
doesn't enforce proper types of its arguments:PoC
Use the following Vega snippet (depends on browser's non-built-in
event.view.setImmediate
function, feel free to replace withevent.view.console.log
or alike and observe the result in the browser's console)Impact
This issue opens various XSS vectors, but exact impact and severity depends on the environment (e.g. Core JS
setImmediate
polyfill basically allowseval
-like functionality).CVE-2023-26486
Summary
The Vega
scale
expression function has the ability to call arbitrary functions with a single controlled argument. This can be exploited to escape the Vega expression sandbox in order to execute arbitrary JavaScript.Details
The scale expression function passes a user supplied argument
group
to getScale, which is then used as if it were an internal context. Thecontext.scales[name].value
is accessed fromgroup
and called as a function back inscale
.PoC
The following Vega definition can be used to demonstrate this issue executing the JavaScript code
alert(1);
This can be viewed in the Vega online IDE at https://vega.github.io/editor/#/url/vega/N4IgJAzgxgFgpgWwIYgFwhgF0wBwqgegIDc4BzJAOjIEtMYBXAI0poHsDp5kTykSArJQBWENgDsQAGhAATJJhSoA2qHFIEcNCAAaAZT0ACAApsAwtJDEkAGwZwIaZQEYAujMwAnJOIgAzNk8EJ1BMAE8cLXQAoIYbFBkkR3QNNgZxTEs4AA8cT21oWzgACgByP3SoUqlDcTibGsNgKAlMHMxUJsKbB07gCvEoPus7OE7ukvLK6sNSuBHihTYmYoAdEABNAHVsmyhxAEU2AFk9AGsAdnWASmuZ5tb2von8JoGhppH7TuVXShbfF4GFBMIF-hIIECQYEAL5wmHXeEIkAw1yomFAA
Release Notes
vega/vega (vega)
v5.23.0
Compare Source
Changes from v5.22.1:
This version contains dependency updates, bug fixes, and security patches, plus a few extra utilities to aid Vega-Lite.
monorepo
.mjs
extensions.vega-canvas
vega-crossfilter
vega-dataflow
vega-encode
vega-event-selector
vega-expression
vega-force
vega-format
vega-functions
lassoAppend
expression function XSS. (Thanks @arvind!)scale
expression function XSS (Thanks @ajxchapman and @hydrosquall!)vega-geo
vega-hierarchy
vega-interpreter
vega-label
vega-loader
vega-parser
view
style for Vega-Lite, #3480 (Thanks @arvind!)vega-projection
vega-projection-extended
vega-regression
vega-runtime
vega-scale
registerScale()
andisRegisteredScale()
methods. (Thanks @hydrosquall!)vega-scenegraph
vega-schema
__count__
private from schema, #3659 (Thanks @lsh!)vega-selections
vega-statistics
vega-time
vega-transforms
vega-typings
__count__
private from schema, #3659 (Thanks @lsh!)vega-util
vega-view
vega-view-transforms
vega-voronoi
vega-wordcloud
vega-cli
vega
v5.22.1
Compare Source
Changes from v5.22.0:
monorepo
vega-scenegraph
Configuration
📅 Schedule: Branch creation - "" in timezone 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.
This PR has been generated by Mend Renovate. View repository job log here.