
Research
lightning PyPI Package Compromised in Supply Chain Attack
Socket detected a malicious supply chain attack on PyPI package lightning versions 2.6.2 and 2.6.3, which execute credential-stealing malware on import.
k-rpc-socket
Advanced tools
Low level implementation of the k-rpc network layer that the BitTorrent DHT uses
Low level implementation of the k-rpc network layer that the BitTorrent DHT uses. Mostly extracted from the bittorrent-dht module on npm into its own repo.
npm install k-rpc-socket
var rpc = require('k-rpc-socket')
var socket = rpc()
socket.on('query', function (query, peer) {
socket.response(peer, query, {echo: query.a})
})
socket.bind(10000, function () {
var anotherSocket = rpc()
anotherSocket.query({host: '127.0.0.1', port: 10000}, {q: 'echo', a: {hello: 'world'}}, function (err, response) {
console.log(response.r) // prints {echo: {hello: Buffer('world')}}
})
})
var socket = rpc([options])Create a new k-rpc-socket. Options include:
{
timeout: queryTimeout, // defaults to 2s
socket: optionalUdpSocket,
isIP: optionalBooleanFunction
}
socket.send(peer, message, [callback])Send a raw message. The callback is called when the message has been flushed from the socket.
var id = socket.query(peer, query, [callback])Send a query message. The callback is called with (err, response, peer, request).
You should set the method name you are trying to call as {q: 'method_name'} and query data as {a: someQueryData}.
The query method returns a query id. You can use this id to cancel the query using the .cancel method.
socket.cancel(id)Cancel a query. Will call the corresponding query's callback with an error indicating that it was cancelled.
socket.response(peer, query, response, [callback])Send a response to a query. The callback is called when the message has been flushed from the socket.
socket.error(peer, query, error, [callback])Send an error reploy to a query. The callback is called when the message has been flushed from the socket.
socket.inflightInteger representing the number of concurrent queries that are currently pending.
socket.destroy()Destroys and unbinds the socket
socket.bind([port], [address], [callback])Call this to bind to a specific port. If port is not specified or is 0, the operating system will attempt to bind to a random port. If address is not specified, the operating system will attempt to listen on all addresses.
If you don't call this a random free port will be chosen.
socket.on('query', query, peer)When a query is received a query event is emitted with the query data and a peer object representing the querying peer.
socket.on('warning', error)Emitted when a non fatal error has occured. It is safe to ignore this.
socket.on('error', error)Emitted when a fatal error has occured.
MIT
FAQs
Low level implementation of the k-rpc network layer that the BitTorrent DHT uses
The npm package k-rpc-socket receives a total of 14,150 weekly downloads. As such, k-rpc-socket popularity was classified as popular.
We found that k-rpc-socket demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers 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
Socket detected a malicious supply chain attack on PyPI package lightning versions 2.6.2 and 2.6.3, which execute credential-stealing malware on import.

Research
A brand-squatted TanStack npm package used postinstall scripts to steal .env files and exfiltrate developer secrets to an attacker-controlled endpoint.

Research
Compromised SAP CAP npm packages download and execute unverified binaries, creating urgent supply chain risk for affected developers and CI/CD environments.