Update dependency mathjs to v7 [SECURITY]#912
Open
renovate[bot] wants to merge 1 commit intomasterfrom
Open
Conversation
dae659c to
c9d530a
Compare
c9d530a to
581e406
Compare
581e406 to
e9ea69f
Compare
e9ea69f to
b590889
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.0.0→^7.0.0Prototype Pollution in mathjs
CVE-2020-7743 / GHSA-x2fc-mxcx-w4mf
More information
Details
The package mathjs before 7.5.1 are vulnerable to Prototype Pollution via the deepExtend function that runs upon configuration updates.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:LReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
josdejong/mathjs (mathjs)
v7.5.1Compare Source
math.config. Thanks Snyk.v7.5.0Compare Source
pickRandomnow allows randomly picking elements from matriceswith 2 or more dimensions instead of only from a vector, see #1974.
Thanks @KonradLinkowski.
v7.4.0Compare Source
ceil,floor,and
fix, similar toround, see #1967, #1901. Thanks @rnd-debug.rotationMatrix, see #1160, #1984. Thanks @rnd-debug.sqrtmwith a matrix havingmore than two dimensions. Thanks @KonradLinkowski.
decimal.jsto10.2.1.v7.3.0Compare Source
usolveAllandlsolveAll, see #1916. Thanks @m93a.stdandvariance, see #1950.Thanks @rnd-debug.
expression parser, and implemented functions
bin,oct, andhexforformatting. Thanks @clnhlzmn.
BigNumberandFraction. Thanks @ovk.v7.2.0Compare Source
diff, see #1634, #1920. Thanks @Veeloxfire.norm.Thanks @rnd-debug.
v7.1.0Compare Source
new in
typed-function@2.0.0. This fixes #1885: functions which whereextended with a new data type did not always work. Thanks @nickewing.
math.expression.node.*instead ofmath.*.v7.0.2Compare Source
DenseMatrix.resizeandSparseMatrix.resizeacceptDenseMatrixandSparseMatrixas inputs too, not onlyArray.sum,prod,min, andmaxnot throwing a conversion errorwhen passing a single string, like
sum("abc").v7.0.1Compare Source
eigs. Thanks @Lazersmoke.math.nthRoots(x).v7.0.0Compare Source
Breaking changes:
dotproduct of complex values.The first argument is now conjugated. See #1761. Thanks @m93a.
To upgrade smoothly from v5 to v7 or higher, upgrade to v6 first
and resolve all deprecation warnings.
v6.6.5Compare Source
Infinitycannot be serialized and deserialized.This is solved now with a new
math.replacerfunction used asJSON.stringify(value, math.replacer).Infinitynot turned into the latex symbol\\infty.v6.6.4Compare Source
v6.6.3Compare Source
format,sometimes resulting in needless trailing zeros.
.toNumber()and.toNumeric()not working on aunitless unit.
mod,and,not,or,xor,to,inas object keys. Thanks @Veeloxfire.eigsnot usingconfig.epsilon.v6.6.2Compare Source
eigsnot calculating with BigNumber precisionwhen input contains BigNumbers.
prepare, so you can use the librarydirectly when installing directly from git. See #1751. Thanks @cinderblock.
v6.6.1Compare Source
a/(b/c). Thanks @dbramwell.rowandcolumn.v6.6.0Compare Source
eigs, see #1705, #542 #1175. Thanks @arkajitmandal.DenseMatrixusingfromJSON.DenseMatrix.mapcopying the size and datatype from the originalmatrix instead of checking the returned dimensions and type of the callback.
^1.2.3) to allow downstream updateswithout having to await a new release of mathjs.
v6.5.0Compare Source
baseNameoption forcreateUnit, see #1707.Thanks @ericman314.
v6.4.0Compare Source
dimensionwith support for n-dimensional points.Thanks @Veeloxfire.
v6.3.0Compare Source
factorialforBigNumberup to a factor two,see #1687. Thanks @kmdrGroch.
v6.2.5Compare Source
IndexNodeusing a hardcoded, one-based implementation ofindex,making it impossible to instantiate a zero-based version of the expression
parser. See #782.
v6.2.4Compare Source
thanks @kevinkelleher12 and @harrysarson.
sign(0)returns complex NaN.Thanks @harrysarson.
v6.2.3Compare Source
meannot working for units. Thanks @clintonc.minlisted twice in the "See also" section of theembedded docs of function
std.isPrime, see #1641. Thanks @arguiot.v6.2.2Compare Source
mapandclonenot copying thedotNotationproperty ofIndexNode. Thanks @rianmcguire.toHTML. Thanks @maytanthegeek.isNumeric.0.v6.2.1Compare Source
formatnot working for expressions.v6.2.0Compare Source
combinationsWithRep. Thanks @waseemyusuf.bitandbyte.bitandbyteinstead ofbitsandbytes.typed-function@1.1.1.v6.1.0Compare Source
combinationsWithRep(see #1329). Thanks @waseemyusuf.v6.0.4Compare Source
old browsers. Thanks @mockdeep for helping to find a solution.
v6.0.3Compare Source
unpkgandjsdelivrfields in package.json pointing to UMD build.Thanks @tmcw.
outer user defined function.
v6.0.2Compare Source
import(regression since v6.0.0).
v6.0.1Compare Source
evaluateandparsemissing in generated docs.v6.0.0Compare Source
!!! BE CAREFUL: BREAKING CHANGES !!!
Most notable changes
Full support for ES modules. Support for tree-shaking out of the box.
Load all functions:
Use a few functions:
Load all functions with custom configuration:
Load a few functions with custom configuration:
Support for lightweight, number-only implementations of all functions:
New dependency injection solution used under the hood.
Breaking changes
Node 6 is no longer supported.
Functions
configandimportare not available anymore in the globalcontext:
Instead, create your own mathjs instance and pass config and imports
there:
Renamed function
typeoftotypeOf,vartovariance,and
evaltoevaluate. (the old function names are reserved keywordswhich can not be used as a variable name).
Deprecated the
Matrix.storagefunction. Usemath.matrixinstead to createa matrix.
Deprecated function
math.expression.parse, usemath.parseinstead.Was used before for example to customize supported characters by replacing
math.parse.isAlpha.Moved all classes like
math.type.Unitandmath.expression.Parsertomath.Unitandmath.Parserrespectively.Fixed #1428: transform iterating over replaced nodes. New behavior
is that it stops iterating when a node is replaced.
Dropped support for renaming factory functions when importing them.
Dropped fake BigNumber support of function
erf.Removed all index.js files used to load specific functions instead of all, like:
Individual functions are now loaded simply like:
To set a specific configuration on the functions:
See example
advanced/custom_loading.js.Updated the values of all physical units to their latest official values.
See #1529. Thanks @ericman314.
Non breaking changes
t,tonne,bel,decibel,dB, and prefixesfor
candela. Thanks @mcvladthegoat.epsilonsetting being applied globally to Complex numbers.math.simplify('add(2, 3)')throwing an error.lowerExpandupperExpand after that rounded the value instead of the other way around.
'use strict'in every file, not needed anymore.v5.10.3Compare Source
delbeing a dependency instead of devDependency.v5.10.2Compare Source
the build folder of a util file
typeOf.jsandtypeof.js.Solved by properly cleaning all build folders before building.
v5.10.1Compare Source
engineeringcan give wrong resultswhen the value has less significant digits than the number of digits in
the output.
v5.10.0Compare Source
lib/header.jsnot having filled in date and version. Thanks @kevjin.decimal.js@10.2.0, fixing an issue on node.js 12.v5.9.0Compare Source
rowandcolumn(see #1413). Thanks @SzechuanSage.engineeringnotation of functionformatnot availablefor
BigNumber.node.toHTML()not correct for unary operators likefactorial.v5.8.0Compare Source
apply. Thanks @bnlcas.dimensionargument tostdandvar.Thanks @bnlcas.
v5.7.0Compare Source
pow()inderivative. Thanks @sam-19.(Fixes #1429, see also #1434, #1432). Thanks @ericman314.
v5.6.0Compare Source
containing "not".
v5.5.0Compare Source
mapandforEachofSparseMatrixnot workingcorrectly when indexes are unordered.
v5.4.2Compare Source
math.formatnot working for BigNumbers with a precision above1025 digits (see #1385). Thanks @ericman314.
RelationalNode. Thanks @rianmcguire.map,forEach,traverse, andtransformof
FunctionNode.v5.4.1Compare Source
v5.4.0Compare Source
specific axis. Thanks @bnlcas.
Unit.formatandUnit.toString,making changes to the unit on execution. Thanks @ericman314.
v5.3.1Compare Source
mminsteadof
m. Thanks @ericman314.v5.3.0Compare Source
hasNumericValue. Thanks @Sathish-kumar-Subramani.math.formatnot working correctly with{ precision: 0 }.Thanks @dkenul.
v5.2.3Compare Source
escape-latexgiving issues in somespecific cases. Thanks @dangmai.
bitNot, see #1299. Thanks @FSMaxB.pownot supporting inputspow(Unit, BigNumber).escape-latex@1.2.0)v5.2.2Compare Source
user-defined units. Thanks @ericman314.
v5.2.1Compare Source
rodbeing defined as5.02921instead of5.0292.Thanks @ericman314.
fraction.js@4.0.10)@babel/core@7.1.2,nyc@13.1.0,webpack@4.21.0).v5.2.0Compare Source
10 < x <= 50.Thanks @ericman314.
BigIntin mathjs.Thanks @ericman314.
2018-09-09, version 5.1.2
parse. Thanks @mathiasvr.subset.quantileSeqhas inconsistent return.number.
fraction.js@4.0.9)babel@7,karma-webpack@3.0.4,nyc@13.0.1,standard@12.0.0,uglify-js@3.4.9,webpack@4.17.2)2018-08-21, version 5.1.1
isNumericnow recognizes more types.sqrt,max,min,var,std,mode,mad,median, andpartitionSelectnot neatly handlingNaNinputs. In somecases (
median,mad, andpartitionSelect) this resulted in an infiniteloop.
escape-latex@1.1.1)webpack@4.17.0)2018-08-12, version 5.1.0
Thanks @jean-emmanuel.
getMatrixDataType. Thanks @JasonShin.optionsargument insimplify. Thanks @paulobuchsbaum.rationalize, see #1173. Thanks @paulobuchsbaum.2018-07-22, version 5.0.4
factorialfor numbers.This improves performance of functions
gamma,permutation, andcombinationtoo. See #1170. Thanks @honeybar.reshape, thanks to afriend of @honeybar.
2018-07-14, version 5.0.3
addandsubtract) not workingwith matrices having a
datatypedefined.formatwithengineeringnotation in outputtingthe correct number of significant figures. Thanks @ericman314.
it by importing a factory function with the same name.
parseinto a functional approach.Thanks @harrysarson.
decimal.jsimport to ES6. Thanks @weinshel.2018-07-07, version 5.0.2
simplifyunnecessarily replacing implicit multiplication withexplicit multiplication.
rationalizethrowing exceptions for some input with decimals.Thanks @maruta.
rawArgsfunctions.add_new_datatypes.Thanks @ChristopherChudzicki.
typed-function@1.0.4,complex.js@2.0.11).babel-loader@7.1.5,uglify-js@3.4.3,expr-eval@1.2.2,webpack@4.15.1).2018-07-01, version 5.0.1
kerma,uglify-js,webpack).2018-06-16, version 5.0.0
!!! BE CAREFUL: BREAKING CHANGES !!!
math.ctranspose. See #1097.Thanks @jackschmidt.
A'(transpose) in the expression parser tocalculate the complex conjugate transpose. See #1097. Thanks @jackschmidt.
complex({abs: 1, arg: 1}), and improved the docs oncomplex numbers. Thanks @ssaket.
eyetoidentity, see #1054.libto
src, andlibnow contains the compiled ES5 code.decimal.jsfrom9.0.1to10.0.1npm test.See #1110.
Number,Boolean, andStringfrom functionscloneandtypeof.Thanks @dakotablair.
toTexon node that containsderivativecausingan exception. Thanks @joelhoover.
2018-06-02, version 4.4.2
det. Thanks @ericman314.compareNaturaland clarified the behavior for strings.inv(sincev4.4.1).Thanks @ericman314.
2018-05-29, version 4.4.1
invwhen dealing with values close to zero.Thanks @ericman314.
2018-05-28, version 4.4.0
equalTextandcompareText. See #1085.2018-05-21, version 4.3.0
math.expm. Thanks @ericman314.complex.jsfromv2.0.2tov2.0.10.fraction.jsfromv4.0.4tov4.0.8.mocha,uglify-js,webpack).2018-05-05, version 4.2.2
see #1098. Thanks @jackschmidt.
escape-latex@1.0.3.2018-05-02, version 4.2.1
dist/math.jsbeing minified.2018-05-02, version 4.2.0
math.sqrtm. Thanks @ferrolho.math.log2,math.log1p, andmath.expm1.Thanks @BigFav and @harrysarson.
2018-04-18, version 4.1.2
decades,centuries,and
millennia.decadeandwatthaving a wrong name when stringifying.Thanks @ericman314.
2018-04-11, version 4.1.1
minus like
math.derivative('-x', 'x').2018-04-08, version 4.1.0
math.printwith support for arrays and matrices.Thanks @jean-emmanuel.
supported by nodes.
math.typeofwith support forResultSetand nodeslike
SymbolNode.bar(i.e.
millibarandmbar).2018-03-17, version 4.0.1
math.unitnot accepting input like1/s.2018-02-25, version 4.0.0
!!! BE CAREFUL: BREAKING CHANGES !!!
Breaking changes (see also #682):
New expression compiler
The compiler of the expression parser is replaced with one that doesn't use
evalinternally. See #1019. This means:a slightly improved performance on most browsers.
less risk of security exploits.
the code of the new compiler is easier to understand, maintain, and debug.
Breaking change here: When using custom nodes in the expression parser,
the syntax of
_compilehas changed. This is an undocumented feature though.Parsed expressions
The class
ConstantNodeis changed such that it just holds a valueinstead of holding a stringified value and it's type.
ConstantNode(valueStr, valueType) is nowConstantNode(value)Stringification uses
math.format, which may result in differentlyformatted numeric output.
The constants
true,false,null,undefined,NaN,Infinity,and
uninitializedare now parsed as ConstantNodes instead ofSymbolNodes in the expression parser. See #833.
Implicit multiplication
Changed the behavior of implicit multiplication to have higher
precedence than explicit multiplication and division, except in
a number of specific cases. This gives a more natural behavior
for implicit multiplications. For example
24h / 6hnow returns4,whilst
1/2 kgevaluates to0.5 kg. Thanks @ericman314. See: #792.Detailed documentation: https://github.com/josdejong/mathjs/blob/v4/docs/expressions/syntax.md#implicit-multiplication.
Immediately invoking a function returned by a function like
partialAdd(2)(3)is no longer supported, instead these expressions are evaluated as
an implicit multiplication
partialAdd(2) * (3). See #1035.String formatting
In function
math.format, the options{exponential: {lower: number, upper: number}}(where
lowerandupperare values) are replaced with{lowerExp: number, upperExp: number}(where
lowerExpandupperExpare exponents). See #676. For example:is now:
In function
math.format, the optionnotation: 'fixed'no longer rounds tozero digits when no precision is specified: it leaves the digits as is.
See #676.
String comparison
Changed the behavior of relational functions (
compare,equal,equalScalar,larger,largerEq,smaller,smallerEq,unequal)to compare strings by their numeric value they contain instead of
alphabetically. This also impacts functions
deepEqual,sort,min,max,median, andpartitionSelect. UsecompareNaturalif youneed to sort an array with text. See #680.
Angle units
Changed
rad,deg, andgradto have short prefixes,and introduced
radian,degree, andgradianand their pluralshaving long prefixes. See #749.
Null
nullis no longer implicitly casted to a number0, so input likemath.add(2, null)is no longer supported. See #830, #353.Dropped constant
uninitialized, which was used to initializeleave new entries undefined when resizing a matrix is removed.
Use
undefinedinstead to indicate entries that are not explicitlyset. See #833.
New typed-function library
typed-functionlibrary used to check the input typesof functions is completely rewritten and doesn't use
evalunderthe hood anymore. This means a reduced security risk, and easier
to debug code. The API is the same, but error messages may differ
a bit. Performance is comparable but may differ in specific
use cases and browsers.
Non breaking changes:
typed-functionimplementation,mathjs doesn't use JavaScript's
evalanymore under the hood.This allows using mathjs in environments with security restrictions.
See #401.
isUnary()andisBinary()onOperatorNode. See #1025.derivativesilently dropping additional argumentsfrom operator nodes with more than two arguments.
2018-02-07, version 3.20.2
typed-function@0.10.7(bug-fix release).implicitnot being copied from anOperatorNodewhen applying function
map. Thanks @HarrySarson.in
toTex(). Thanks @FSMaxB.2018-01-17, version 3.20.1
simplifyCorefailing in some cases with parentheses.Thanks @firepick1.
2018-01-14, version 3.20.0
+and*inderivative. Thanks @HarrySarson. See #1002.simplifyevalution ofsimplifyof functions with more than twoarguments wrongly:
simplify('f(x, y, z)') evaluated tof(f(x, y), z)instead off(x, y, z)`. Thanks @joelhoover.simplifythrowing an error in some cases when simplifying unknownfunctions, for example
simplify('f(4)'). Thanks @joelhoover.simplifywrongly simplifing some expressions containing unaryminus, like
0 - -x. Thanks @joelhoover.xor. Thanks @denisx.2018-01-06, version 3.19.0
distanceandintersectwith support for BigNumbers.Thanks @ovk.
simplify: added a rule that allows combiningof like terms in embedded quantities. Thanks @joelhoover.
2017-12-28, version 3.18.1
Thanks @firepick1.
2017-12-16, version 3.18.0
Implemented function
rationalize. Thanks @paulobuchsbaum.Upgraded dependencies:
Upgraded dev dependencies.
Fixed #975: a wrong example in the docs of lusolve.
Fixed #983:
pickRandomreturning an array instead of single valuewhen input was an array with just one value. Clarified docs.
Fixed #969: preven issues with yarn autoclean by renaming an
interally used folder "docs" to "embeddedDocs".
2017-11-18, version 3.17.0
simplifyfor nested exponentiations. Thanks @IvanVergiliev.typed-functionallowing arbitrary code executionin the JavaScript engine by creating a typed function with JavaScript code
in the name. Thanks Masato Kinugawa.
replaced by using unicode characters when creating an object. No known exploit,
but could possibly allow arbitrary code execution. Thanks Masato Kinugawa.
2017-10-18, version 3.16.5
addandmultiplynot working whenpassing three or more arrays or matrices.
2017-10-01, version 3.16.4
simplifyreturning wrong results orrunning into an infinite recursive loop. Thanks @ericman314.
2017-08-28, version 3.16.3
simplifyreordering operations. Thanks @firepick1.isNaNreturning wrong result for complexnumbers having just one of their parts (re/im) being
NaN.FibonacciHeap.isEmptyreturning wrong result.2017-08-20, version 3.16.2
simplifynot accepting the signaturesimplify(expr, rules, scope)anymore. Thanks @firepick1.implicit multiplications (see #922). Thanks @FSMaxB.
2017-08-12, version 3.16.1
way using functions like
isComplex(x)instead of duck type checkinglike
x && x.isComplex === true.unit.toNumeric().Thanks @AlexanderBeyn.
toStringof a parsed expression tree containing animmediately invoked function assignment not being wrapped in
parenthesis (for example
(f(x) = x^2)(4)).2017-08-06, version 3.16.0
math.simplify.Thanks @firepick1.
math.simplify, optionally pass a scope withvariables which are resolved, see #907. Thanks @firepick1.
since 3.15.0).
2017-07-29, version 3.15.0
$in symbol names (see #895).this was disabled for security reasons some time ago. See #888, #899.
Thanks @ThomasBrierley.
map,forEach, andfilterwhen used in the expression parser:
for the callback function.
mapand
forEach.mapandfilter.2017-07-05, version 3.14.2
fraction.js@4.0.22017-06-30, version 3.14.1
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ 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 was generated by Mend Renovate. View the repository job log.