HN discussion
(824 points, 274 comments)
The author discovered that the AliExpress homepage silently creates two WebAudio contexts via heavily obfuscated Alibaba security scripts (collina.js and fireyejs.js). These scripts build audio graphs that generate a sawtooth waveform, analyze it through an AnalyserNode, and connect to the system audio destination via a zero-gain node—producing no audible sound but keeping the audio pipeline active. This behavior is part of a comprehensive browser fingerprinting suite that also collects canvas, WebGL, hardware, timing, interaction, and sensor data. On the author's system, the silent audio processing prevented Bluetooth multipoint headphones from switching audio priority from PC to phone, and browser mute controls had no effect because no conventional media elements were involved. Blocking the two script families with uBlock Origin eliminated the hidden audio contexts and restored normal multipoint behavior, though the author notes this may trigger additional CAPTCHAs during sensitive actions.
Multiple commenters confirmed similar Bluetooth audio disruptions on AliExpress and other sites (Twitter, Cloudflare challenges, CAPTCHA pages), with some reporting issues on iOS and in cars. Discussion centered on the privacy implications of permissionless audio fingerprinting, with suggestions that audio API access should be permission-gated like camera/microphone. Users noted battery drain from background processing and shared workarounds including ad blockers, Lockdown Mode on iOS, and uBlock filters. Several referenced prior examples of creative fingerprinting (eBay's port scanning, Reddit's DRM/JIT exploits). A recurring theme was frustration with the "plausible deniability" of security tooling being used for covert tracking, and calls for user-controlled virtualization of device identifiers rather than relying on granular permissions that apps can nag users into granting.
HN discussion
(350 points, 346 comments)
On August 20, 2026, a supply-chain attack compromised the popular Rust crate `arrayref` (245M+ all-time downloads) when version 0.3.10 was published to crates.io with a malicious dependency on `proc-macro1` — a typosquatted crate mimicking the legitimate `proc-macro2`. The maintainer's GitHub account (droundy) and repositories were inaccessible, suggesting account compromise. The attacker yanked prior versions (0.3.5–0.3.9) to funnel users toward the malicious release. The payload resided in `proc-macro1` 1.0.107's build script, which reassembled a C2 address from base64 fragments, downloaded an architecture-specific binary over TLS with certificate validation disabled, and executed it detached from the build process — dropping `/tmp/rust-setup` on Unix and using a hidden VBScript-launched PowerShell script on Windows. The malicious crate's source code was a functional copy of `proc-macro2` with find-and-replace renaming, allowing builds to succeed while the build script ran. Crates.io has since removed the malicious versions.
Commenters drew parallels to npm ecosystem attacks and criticized Cargo's lack of security controls for build scripts, noting pnpm's allowlist approach for install scripts. Multiple users advocated for sandboxing build scripts via bubblewrap or microVMs, referencing a stalled Rust 2024H2 goal for sandboxed build scripts. A recurring theme was Rust's "dependency explosion" problem, with calls for a "batteries included" standard library to reduce reliance on micro-dependencies. Some suggested using AI to generate small utility code instead of pulling external crates. Others emphasized containerized development environments to limit blast radius. Several commenters linked to the official Rust blog post, RustSec advisory, and third-party analyses from StepSecurity, JFrog, and Aikido.
HN discussion
(506 points, 147 comments)
The article "HTML Can Do That" by Chris Burnell showcases modern HTML features that eliminate the need for JavaScript in common interactive patterns. Demonstrated capabilities include: `popover` and `dialog` for modals and tooltips with built-in light-dismiss and ESC handling; grouped `` elements for exclusive accordions; `command`/`commandfor` attributes for declarative control of popovers; `loading="lazy"` for deferred image loading; `hidden="until-found"` for content revealed via fragment navigation or search; native color, date, and range input pickers; and `
Commenters expressed both enthusiasm and skepticism. Several noted practical limitations: `