Sass version 1.11.0 represents a subtle yet potentially impactful update compared to the preceding stable version, 1.10.4. Both versions share the core functionality of providing a pure JavaScript implementation of Sass, benefiting developers seeking to integrate Sass compilation directly into their JavaScript-based workflows. Both list chokidar as a dependency, highlighting their ability to watch files for change and automatically recompile. They share similar author and license information, meaning the core team and distribution remain the same.
A key difference is the unpackedSize of the distribution. Version 1.11.0 shows a slightly larger unpacked size (692791 bytes) compared to version 1.10.4 (688063 bytes). While this difference might seem small, it indicates code changes, new features, modified functionality, or potentially even updated dependency versions within the package. The release date indicates that version 1.11.0 was released approximately three days after version 1.10.4. Which suggest that probably the update was done to solve an issue, add a quick fix or a very small feature that wasn't breaking so early after the previous release. For developers deciding between these versions, it's recommended to consult the official Sass changelog or release notes for a detailed list of specific changes of what happened in between both versions. While upgrading often brings improvements and bug fixes, careful evaluation ensures compatibility with existing projects and prevents unexpected issues.
All the vulnerabilities related to the version 1.11.0 of the package
Uncontrolled resource consumption in braces
The NPM package braces
fails to limit the number of characters it can handle, which could lead to Memory Exhaustion. In lib/parse.js,
if a malicious user sends "imbalanced braces" as input, the parsing will enter a loop, which will cause the program to start allocating heap memory without freeing it at any moment of the loop. Eventually, the JavaScript heap limit is reached, and the program will crash.
Regular Expression Denial of Service (ReDoS) in micromatch
The NPM package micromatch
prior to version 4.0.8 is vulnerable to Regular Expression Denial of Service (ReDoS). The vulnerability occurs in micromatch.braces()
in index.js
because the pattern .*
will greedily match anything. By passing a malicious payload, the pattern matching will keep backtracking to the input while it doesn't find the closing bracket. As the input size increases, the consumption time will also increase until it causes the application to hang or slow down. There was a merged fix but further testing shows the issue persisted prior to https://github.com/micromatch/micromatch/pull/266. This issue should be mitigated by using a safe pattern that won't start backtracking the regular expression due to greedy matching.