trueNetLab logo
EN
AliExpress: Fingerprinting Through the Web Audio API

AliExpress: Fingerprinting Through the Web Audio API

You open an online store, and the music on your smartphone suddenly stops. There is no video playing in the browser, no audible advertisement, and even muting the tab changes nothing. Only after closing the AliExpress tab do the Bluetooth headphones switch cleanly back to the phone.

What sounded like a Bluetooth Multipoint bug led developer Matt Callaghan to two heavily obfuscated JavaScript files on the AliExpress homepage. Both created a running Web Audio graph in the background. The final output level was zero, so nothing was audible. Yet the audio path remained active for the browser, operating system, and headphones.

The discovery is technically fascinating because an unintended hardware side effect exposed an otherwise invisible browser measurement. It is even more interesting from a security perspective because Web Audio was only one component. The scripts also examined Canvas, WebGL, the screen, hardware, supported media formats, WebRTC, and user interactions. The result looks like a comprehensive browser and device fingerprint.

What makes this case disturbing is not an especially secret audio trick, but the breadth and invisibility of a measurement that started on an ordinary shopping homepage.

The Bluetooth Bug That Wasn’t One

Callaghan uses Multipoint headphones connected to a PC and smartphone at the same time. He normally listens to music from the phone. When the PC genuinely produces audio, it takes over playback. This priority switching suddenly became stuck whenever AliExpress was open in Firefox or Chrome. He did not test other browsers.

The usual suspects were absent. There were no audio or video elements, no call to HTMLMediaElement.play(), no active Media Session, and no recognizable media file in the network traffic. The only clue was that the interference began several seconds after the page had loaded.

Callaghan therefore instrumented the Web Audio API. He wrapped the AudioContext constructor, logged newly created audio contexts, and monitored connections through AudioNode.connect(). Two running contexts appeared, with stack traces pointing to these scripts:

assets.aliexpress-media.com/g/AWSC/uab/1.140.0/collina.js
assets.aliexpress-media.com/g/AWSC/fireyejs/1.231.67/fireyejs.js

Both lived below an AWSC path and appeared, based on their functions, to belong to Alibaba infrastructure for browser security and abuse prevention. That association is plausible, but the filenames alone do not prove it conclusively. Alibaba Cloud does officially document an Anti-Bot Web SDK containing a web collector used together with server-side analysis.

Callaghan narrowed the behavior further. After blocking both script families, his control capture created neither the audio contexts nor their connections to the audio output. The homepage and ordinary product browsing continued to work in his test.

What the Web Audio Graph Actually Does

Web Audio is not a hidden eavesdropping feature. It is a powerful browser interface for games, synthesizers, video conferences, and other interactive applications. Instead of merely playing an audio file, a website can connect individual processing nodes into a graph.

The examined AliExpress scripts constructed roughly this chain:

OscillatorNode with sawtooth wave
  -> AnalyserNode
  -> ScriptProcessorNode
  -> GainNode with gain 0
  -> AudioContext.destination

The oscillator generates a known signal. The AnalyserNode exposes measurements from the processing stage, and JavaScript reads the frequency values. The GainNode then sets the level to zero. The signal is therefore inaudible, but the graph remains connected to AudioContext.destination, the real-time output.

That connection explains the side effect. Zero volume does not mean zero processing. The browser continues calculating the graph, and on Callaghan’s Windows system this was apparently enough to keep the PC audio path active. The headphones’ automatic Multipoint switching therefore continued to treat the PC as the active source.

For a purely computational measurement, an OfflineAudioContext would have been the more obvious choice. It renders an audio graph directly into a memory buffer without sending it to the operating system’s speakers or audio device. In the AliExpress graph, the oscillator and analysis also occur before the muted output. Connecting the graph to the live destination provided no apparent additional value for the frequency data that had already been read, but it caused the visible side effect.

Mozilla Had Logged the Same Effect in 2023

Callaghan’s headphones provided the clue that attracted public attention in 2026. Mozilla had already recorded the underlying browser effect in November 2023 as Bug 1863193. The original Firefox 119 report described AliExpress pages creating a persistent audio power request on Windows 11. powercfg /requests reported an active audio stream even though the tab showed no playback. This prevented the computer from entering sleep automatically. Closing the tab removed the request.

Mozilla developer Karl Tomlinson enabled Web Audio logging. The log showed the exact chain Callaghan later described, twice: OscillatorNode, AnalyserNode, ScriptProcessorNode, muted GainNode, and AudioDestinationNode. Tomlinson observed similar persistent device use in Chrome and noted that AliExpress could stop it with AudioContext.suspend().

This is important independent confirmation. The hardware side effect does not rest solely on Callaghan’s interpretation of obfuscated code. Mozilla had directly logged the running graph and its effect on Windows power management years earlier. The bug remains open. It also shows shared responsibility: AliExpress could suspend the context after measuring, while the browser could release an effectively silent, no-longer-needed graph from the audio device sooner.

No Microphone and No Ultrasound From the Room

Precise wording matters here. AliExpress did not record the microphone in this test, nor did the page listen for sounds in the room. Microphone access would go through getUserMedia() and require user permission.

It is equally misleading to imagine that the shop emitted an ultrasonic signal through the speakers and physically captured it again. The measurement occurred inside the browser’s audio processing. The sawtooth wave was calculated, analyzed, and reduced to zero before output. The headphone effect occurred because the virtual graph was nevertheless attached to the real output.

Why Identical Calculations Can Produce Different Results

Digital signal processing involves many floating-point operations. CPU architecture, mathematical libraries, compiler choices, browser implementation, and rounding behavior can introduce small differences. The Web Audio standard explicitly lists OscillatorNode, DynamicsCompressorNode, sample rate, latency, and timing measurements as possible fingerprinting surfaces. Browsers are therefore expected to limit those differences.

A Web Audio result is not a magical hardware serial number. Multiple devices can return the same value, and a browser can standardize or alter results. Recognition becomes more powerful only when the value is combined with other attributes.

The Technique Has Been Used Since at Least 2016

Audio fingerprinting was not invented in 2026. Steven Englehardt and Arvind Narayanan examined one million websites for their OpenWPM study published at ACM CCS in 2016. They found AudioContext fingerprinting in three scripts across 67 websites, with two scripts actively applying the technique according to their manual analysis.

Those scripts also used an oscillator to generate a known signal, then read and hashed the processed result. One documented variant sent its graph through an AnalyserNode, ScriptProcessorNode, and muted GainNode to the destination, a structure remarkably close to the AliExpress pattern. The Princeton researchers already emphasized that no microphone was required and that fingerprinting methods were normally combined.

What is new in the AliExpress case is not the basic concept. It is the concrete discovery on one of the world’s largest marketplaces, the broad combination of additional properties, and especially the side channel that made the measurement noticeable.

The Audio Value Was Only One Puzzle Piece

Callaghan found queries and measurements for many other characteristics in the examined bundles:

  • Canvas rendering and toDataURL()
  • WebGL renderer information, extensions, and shader precision
  • Screen and viewport dimensions plus device pixel ratio
  • hardwareConcurrency and deviceMemory
  • Installed browser plugins and supported media formats
  • WebRTC behavior and performance timing
  • Mouse, touch, focus, and scroll events
  • Device motion and orientation
  • Properties that can indicate browser automation or bots

The code also contained routines for serializing and encrypting results and transmitting them through fetch() or sendBeacon(). The client side therefore proves that a broad set of fingerprinting-compatible data can be collected and sent to Alibaba services.

What happens on the server is not proven. The browser does not reveal retention periods or whether the values are later linked with accounts, orders, other Alibaba properties, or advertising profiles. Callaghan explicitly draws this boundary himself.

AliExpress’s privacy policy lists browser and operating-system information, hardware and software attributes, unique device identifiers, usage patterns, and interactions. The purposes described include operating and personalizing the platform as well as detecting fraud, money laundering, and security incidents. The policy does not make the observed technical implementation transparent, but it confirms that extensive device and usage data are part of the stated data model.

Fingerprinting Is Not Automatically Advertising Tracking

Browser fingerprints are used in very different contexts. Advertising networks can use them to recognize a browser after cookies have been deleted. Online stores and payment services also use similar signals for risk assessment, account takeover detection, coupon abuse, scraping, bots, or automated purchases.

These purposes are not mutually exclusive. The same device identifier can serve both security and marketing interests. Yet the discovered JavaScript does not prove a specific cross-site advertising campaign. Claiming that AliExpress follows every visitor across all websites would go beyond the available evidence.

The case remains problematic from a security and privacy perspective:

  • Measurement began on the general homepage, not only at login or payment.
  • The scripts were heavily obfuscated and practically impossible for users to understand.
  • Collection covered far more than a single anti-bot signal.
  • The running audio graph was not meaningfully visible and could not be stopped by muting the tab.
  • A background feature reached far enough into the local audio path to alter external hardware behavior.

Understandable fraud prevention does not require a public implementation manual. It does require data minimization, clear purpose limitation, and behavior consistent with user expectations. A silent shopping tab should not occupy a real-time audio path.

How Unique Was This Audio Fingerprint?

Firefox engineer Tom Ritter extracted the relevant Web Audio calculation and compared it with Firefox telemetry. The result substantially qualifies alarmist accounts.

Since Firefox 118, Web Audio has used the FDLIBM mathematical library on all platforms to reduce system-dependent differences. In Ritter’s analysis, 99.24 percent of users fell into only three result values. For another 0.76 percent, the measurement failed and returned zero. The three large groups mainly represented CPU classes: x86 or x64 without FMA, x64 with FMA, and ARM with NEON.

For the specific AliExpress method, this means the audio value was not individual for almost all Firefox users. It exposed something closer to a broad processor class than a particular device. A small long tail of additional values remained, however, and rare values can make the affected systems more distinctive.

A weak individual value does not become harmless when it is part of a strong overall profile built from graphics, hardware, behavior, and account information.

Fingerprinting works through combinations. Screen size, time zone, or CPU class are usually mundane on their own. Canvas, WebGL, fonts, hardware information, browser attributes, interaction patterns, and an existing login can become far more discriminating together. The Web Audio value does not need to be unique to remain useful in an overall score.

Browser Protection Is an Arms Race With Side Effects

Browsers apply different strategies. Firefox standardizes certain calculations and blocks known fingerprinting services. Since Firefox 145, broader protections initially apply in Private Browsing and with Strict Enhanced Tracking Protection. Mozilla itself stresses that more aggressive standardization can break legitimate functionality.

Brave slightly modifies fingerprinting-compatible results such as Canvas and Web Audio values. This technique, called farbling, stays stable within a website and session but is intended to differ between websites and sessions. Applications still receive plausible values, but those values are harder to use as a durable global identifier.

WebKit limits multiple fingerprinting surfaces in Safari, including locally installed fonts and certain device information. For especially risky APIs, WebKit sometimes declines implementation until it sees a safe path. This illustrates the fundamental conflict: the same interfaces that enable complex web applications also enlarge the browser’s measurement surface.

No ordinary browser can guarantee that all fingerprinting disappears. When one characteristic is standardized, providers move to other attributes or behavioral signals. An exotic combination of extensions, fonts, and manual privacy switches can even make a browser rarer and more recognizable.

What Users Can Do

The sensible baseline is a current browser with fingerprinting protection enabled. In Firefox, Strict Enhanced Tracking Protection or a private window enables the broader protection level. Brave enables Shields and fingerprinting defenses by default. Safari users should keep both browser and operating system current. For sensitive sessions, Tor Browser and Mullvad Browser go further by trying to make many users appear with a similar browser fingerprint. Adding custom deviations or extra extensions there is counterproductive.

Private windows alone are not a complete answer. They limit stored state but do not automatically hide hardware and browser characteristics. Deleting cookies does not reset a fingerprint in the same way it removes a cookie ID.

A VPN addresses a different problem. It replaces the visible public IP address and, depending on the setup, protects the path to the VPN provider. It does not automatically change Canvas, WebGL, audio calculations, fonts, or hardware characteristics. A VPN can be useful, but by itself it is not protection against browser fingerprinting.

Block the Two Scripts With uBlock Origin

Callaghan published two deliberately narrow filters for uBlock Origin:

! AliExpress AWSC fingerprinting scripts
||assets.aliexpress-media.com/g/AWSC/uab/*/collina.js$script,domain=aliexpress.com
||assets.aliexpress-media.com/g/AWSC/fireyejs/*/fireyejs.js$script,domain=aliexpress.com

After adding them under My filters, close any existing AliExpress tabs. Blocking a script afterward does not terminate an audio context it has already created.

These rules are a snapshot. Paths, versions, and filenames can change. Because the scripts likely belong to anti-bot and risk infrastructure, users may encounter more CAPTCHAs or login and checkout problems. If a legitimate transaction fails, temporarily disable the rule for that operation and close the tab afterward.

Blocking the entire assets.aliexpress-media.com host at DNS level would be much broader and could affect other store resources. A narrow URL rule is easier to control than a blanket domain block.

Disabling JavaScript Entirely Is Rarely Practical

The measurement cannot run without JavaScript, but modern stores become nearly unusable. Globally disabling JavaScript also creates an unusual browser configuration and does not replace the careful separation of accounts, profiles, and sensitive activities.

For especially sensitive research, a separate, minimally customized browser can limit connections with the everyday profile. It does not guarantee anonymity. IP address, login, payment data, and server-side signals remain unaffected.

In Europe, “cookieless” does not mean “free from consent requirements.” The final Guidelines 2/2023 of the European Data Protection Board interpret the technical scope of Article 5(3) of the ePrivacy Directive more broadly than conventional cookies. Access to information stored in a device or generated there by software and hardware can also be relevant.

Whether the specific AliExpress implementation is lawful depends on its actual purpose, necessity, national implementation of ePrivacy rules, transparency, and subsequent processing. Anti-fraud is a legitimate purpose, but that does not automatically answer whether every property collected on the general homepage is necessary for that purpose or whether consent is required.

This article is not a legal opinion. Technically, however, the case demonstrates why cookie banners do not fully represent modern identification. A visitor can reject every visible marketing cookie and still be measured through first-party JavaScript.

Test Basis and Limitations

I last checked the technical analysis, browser information, and publicly available policies on August 31, 2026. The concrete AliExpress finding is based on Callaghan’s documented Windows test with Firefox and Chrome and his instrumentation of the Web Audio API. Additional evidence comes from Mozilla’s independent bug report, Ritter’s analysis of the extracted audio method, the OpenWPM research, and primary documentation from W3C, Mozilla, Brave, WebKit, Alibaba Cloud, AliExpress, and the EDPB.

The two versioned script URLs identified by Callaghan still returned HTTP 200 with the content type application/javascript when I checked them. I did not execute the scripts myself in a controlled AliExpress account or reproduce the Bluetooth side effect with my own headphones. Other operating systems, browsers, regions, A/B tests, or changed script versions may behave differently. Server-side retention, scoring, identity linkage, and use of the transmitted measurements were not visible and are therefore not first-hand findings in this article.

My Conclusion

This case is not evidence of secret ultrasonic surveillance, nor does it prove that a single audio value uniquely identifies every computer. It is strong evidence of how extensively modern websites can use the browser as a measurement instrument without showing users what is happening.

The anti-fraud explanation is technically credible. A large marketplace has to combat bots, account takeover, payment fraud, and coupon abuse. That does not automatically justify every measurement at every point in the customer journey. A platform collecting audio, graphics, hardware, WebRTC, and behavioral attributes on its general homepage should expect questions about necessity, transparency, and side effects.

In the end, it was not a privacy dashboard that exposed the measurement. It was a pair of Bluetooth headphones refusing to pretend that the browser was silent.

Until next time,
Joe

Sources