![Kill Switch Hidden in npm Packages Typosquatting Chalk and Chokidar](https://cdn.sanity.io/images/cgdhsj6q/production/6199b2d12ffc9c39c6ca08c94d7b3217946ad92a-1024x1024.webp?w=400&fit=max&auto=format)
Research
Security News
Kill Switch Hidden in npm Packages Typosquatting Chalk and Chokidar
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
buffer-equal-constant-time
Advanced tools
The buffer-equal-constant-time npm package is used to check if two buffers are equal without leaking timing information that could be used to infer the contents of the buffers. This is particularly useful for preventing timing attacks when comparing sensitive data, such as cryptographic hashes or tokens.
Constant-time buffer comparison
This feature allows for the comparison of two buffers in a way that the time taken to compare them does not depend on the number of bytes that match. This is important for security purposes to prevent timing attacks.
const bufferEqualConstantTime = require('buffer-equal-constant-time');
const buffer1 = Buffer.from('sensitive data');
const buffer2 = Buffer.from('sensitive data');
const isEqual = bufferEqualConstantTime(buffer1, buffer2); // returns true if equal, false otherwise
Secure-compare offers constant-time comparison of two strings or buffers, which is useful for comparing hashes or tokens securely. It is a direct alternative to buffer-equal-constant-time with a similar API.
Tsscmp (timing-safe string compare) is designed to provide a timing-safe string comparison function. While it is primarily for strings, it can also be used with buffers by converting them to strings, offering an alternative approach to constant-time comparison.
Constant-time Buffer
comparison for node.js. Should work with browserify too.
npm install buffer-equal-constant-time
var bufferEq = require('buffer-equal-constant-time');
var a = new Buffer('asdf');
var b = new Buffer('asdf');
if (bufferEq(a,b)) {
// the same!
} else {
// different in at least one byte!
}
If you'd like to install an .equal()
method onto the node.js Buffer
and
SlowBuffer
prototypes:
require('buffer-equal-constant-time').install();
var a = new Buffer('asdf');
var b = new Buffer('asdf');
if (a.equal(b)) {
// the same!
} else {
// different in at least one byte!
}
To get rid of the installed .equal()
method, call .restore()
:
require('buffer-equal-constant-time').restore();
© 2013 GoInstant Inc., a salesforce.com company
Licensed under the BSD 3-clause license.
FAQs
Constant-time comparison of Buffers
The npm package buffer-equal-constant-time receives a total of 9,903,419 weekly downloads. As such, buffer-equal-constant-time popularity was classified as popular.
We found that buffer-equal-constant-time demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.