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.
Send data via Apple Wireless Direct Link (AWDL) using JavaScript.
From the Open Wireless Link, an awesome project that seeks to reverse-engineer AWDL:
What is Apple Wireless Direct Link (AWDL)?
According to US patent 20180083858A1, AWDL was designed as a successor to the unsuccessful Wi-Fi IBSS a.k.a. ad hoc mode:
The limitations of IBSS mode (and its Wi-Fi infrastructure predecessors) led the Wi-Fi Alliance to define Wi-Fi Direct. Further, due to concerns regarding Wi-Fi Direct, Apple Wireless Direct Link (AWDL) was developed by Apple and eventually adopted by the Wi-Fi Alliance as the basis for Neighbor Awareness Networking (NAN).
Which services use AWDL?
We compiled a non-exhaustive list with applications which use [...] AWDL [...].
- AirDrop
- AirPlay
- Auto Unlock
- Universal Clipboard
How does AWDL work?
In technical terms, we found that AWDL works essentially works as follow:
In short, each AWDL node announces a sequence of Availability Windows (AWs) indicating its readiness to communicate with other AWDL nodes. An elected master node synchronizes these sequences. Outside the AWs, nodes can tune their Wi-Fi radio to a different channel to communicate with an access point, or could turn it off to save energy.
npm install awdl
This is a very low-level example, a more practical one will be added soon!
const {isSupported, listenOnAWDL} = require('awdl')
const {decode} = require('dns-packet')
if (isSupported()) {
// mDNS + DNS-SD over AWDL a.k.a. "iPhone magically find Mac with AirDrop"
const awdl = listenOnAWDL(5353, {udp: true, recvAnyif: true})
awdl.on('error', (err) => {
console.error(err)
process.exit(1)
})
awdl.on('data', (msg) => {
const {type, questions, answers} = decode(msg)
console.log(type, questions, answers)
})
}
listenOnAWDL(port, opt = {})
Returns a duplex stream.
opt
may have the following fields:
udp
– Use UDP instead of TCP? Default: false
readonly
– Disallow sending data? Will return a readable stream then. Default: false
recvAnyif
– set SO_RECV_ANYIF
to receive traffic from all network interfaces? Apple calls this "unrestricted inbound processing". Default: false
If you have a question or need support using awdl
, please double-check your code and setup first. If you think you have found a bug or want to propose a feature, use the issues page.
FAQs
Send data via Apple Wireless Direct Link (AWDL) using JavaScript.
We found that awdl 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.