Cucumber.js version 0.9.1 arrived shortly after 0.9.0, bringing subtle but potentially important refinements. Both versions represent stable releases of the official JavaScript implementation of Cucumber, a popular tool for Behavior-Driven Development (BDD). Developers leveraging Cucumber to write executable specifications will find both versions broadly similar in core functionality, relying on the same key dependencies such as colors, lodash, gherkin, walkdir, callsite, duration, cli-table, commander, camel-case, stack-chain, and cucumber-html for core operations like handling colors in output, data manipulation, parsing Gherkin feature files, traversing directories, managing call stacks, representing durations, creating command-line tables, parsing command-line arguments, converting strings to camel case, and managing stack traces, respectively.
The key difference lies within the devDependencies. Version 0.9.1 sees an update to fs-extra from version 0.24.0 to 0.26.0, while async changes from version 1.4.2 to ^1.5.0. These updates, while seemingly minor, often bring bug fixes, performance improvements, and new features to the underlying testing and build processes. Users of Cucumber should evaluate these updated dev dependencies for potential impact on their specific workflows, especially if they're directly utilizing any of these tools in their Cucumber-related development pipelines. Choosing between the two versions depends primarily on a project's tolerance for dependency updates and a careful assessment of the changelogs for fs-extra and async between the specified versions.
All the vulnerabilities related to the version 0.9.1 of the package
Command Injection in lodash
lodash
versions prior to 4.17.21 are vulnerable to Command Injection via the template function.
Prototype Pollution in lodash
Versions of lodash
before 4.17.11 are vulnerable to prototype pollution.
The vulnerable functions are 'defaultsDeep', 'merge', and 'mergeWith' which allow a malicious user to modify the prototype of Object
via {constructor: {prototype: {...}}}
causing the addition or modification of an existing property that will exist on all objects.
Update to version 4.17.11 or later.
Prototype Pollution in lodash
Versions of lodash
before 4.17.5 are vulnerable to prototype pollution.
The vulnerable functions are 'defaultsDeep', 'merge', and 'mergeWith' which allow a malicious user to modify the prototype of Object
via __proto__
causing the addition or modification of an existing property that will exist on all objects.
Update to version 4.17.5 or later.
Prototype Pollution in lodash
Versions of lodash
before 4.17.12 are vulnerable to Prototype Pollution. The function defaultsDeep
allows a malicious user to modify the prototype of Object
via {constructor: {prototype: {...}}}
causing the addition or modification of an existing property that will exist on all objects.
Update to version 4.17.12 or later.
Prototype Pollution in lodash
Versions of lodash prior to 4.17.19 are vulnerable to Prototype Pollution. The functions pick
, set
, setWith
, update
, updateWith
, and zipObjectDeep
allow a malicious user to modify the prototype of Object if the property identifiers are user-supplied. Being affected by this issue requires manipulating objects based on user-provided property values or arrays.
This vulnerability causes the addition or modification of an existing property that will exist on all objects and may lead to Denial of Service or Code Execution under specific circumstances.