Pith. sign in

REVIEW 1 major objections 6 minor

To WASM or Not to WASM: Evaluation of Browser Fingerprinting Defenses Under WASM based Obfuscation

T0 review · 1 major / 6 minor · reviewed 2026-08-05 · deepseek-v4-flash

Pith's one-line read Translating fingerprinting JavaScript to WebAssembly evades research detectors but not browser-level defenses.

desk verdict First systematic test of WASM conversion as a fingerprinting-evasion trick; the core observation is plausible, but the headline numbers rest on functional-equivalence checks that are only rigorous on the controlled dataset. read the letter →

arxiv 2508.21219 v2 pith:IU75YZLP submitted 2025-08-28 cs.CR cs.ETcs.PL

classification cs.CRcs.ETcs.PL
keywords browserfingerprintingWebAssemblyobfuscationdetectionevasionJS-to-WASMconversionanti-fingerprintingdefensesAPI-levelinterceptionstaticanalysisdetectorsdynamic
verification ladder T0 review T1 audit T2 compute T3 formal

The pith

A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.

The reading

This paper asks whether an adversary can hide browser fingerprinting by translating ordinary JavaScript fingerprinting scripts into WebAssembly (WASM), a low-level binary format that browsers execute alongside JavaScript. The authors build an automated pipeline that converts real-world fingerprinting scripts into functional WASM-obfuscated variants and test those variants against detectors from the research literature and against commercial in-browser defenses. They find a sharp split: research detectors that analyze JavaScript source code become fragile or completely inoperable, while browser extensions and built-in browser protections remain fully effective because they intercept at the API level rather than reading code. The paper also shows that a fully WASM-native fingerprinting technique, which avoids typical fingerprinting APIs, bypasses even those API-level defenses. If this holds, detection research must shift from JavaScript syntax toward WASM-aware and behavior-level monitoring; otherwise the next generation of tracking code may hide in plain sight.

What carries the argument

The load-bearing mechanism is the conversion pipeline: a JavaScript AST is recursively traversed, thirteen translation rules match general constructs (literals, loops, arrays, function definitions, control flow) and fingerprinting-specific patterns (canvas API calls, screen property accesses, sensitive functions like eval), and each match is replaced with AssemblyScript code compiled to a WASM binary plus JS glue that instantiates the module and binds exports back into the script. A greedy strategy maximizes how much of the original code moves into WASM; one rule uses an LLM to translate arbitrary JS function definitions into AssemblyScript. On the defense side, the key mechanism is API-leve

What would settle it

Take a sample of the real-world fingerprinting scripts that the pipeline converted, execute the original and converted versions in the same instrumented browser, and compare the fingerprint attributes each one collects and the fingerprint hash each one produces; if a large fraction of converted scripts return missing or different values, the evasion results reflect broken conversions, not effective obfuscation.

Watch

Extended reading notes

Core claim

The central claim is that WASM-based obfuscation of JavaScript fingerprinting creates a divergence in defense effectiveness: feature-based detectors from the literature are vulnerable, while API-level defenses are not. On the deep-learning static detector, recall on its own test set dropped from 77.78% to 44.44% after conversion; on the hybrid static-dynamic detector, the crawler used an old Firefox build with WASM disabled, so converted scripts were never processed at all. Retraining with balanced, category-aware WASM-converted samples restored the static detector to 98.12% accuracy on both JS and WASM test sets. All ten tested browser extensions and all five browser configurations remained

Load-bearing premise

The conversion pipeline preserves fingerprinting functionality in the real-world corpus: for controlled scripts the authors verify hash-output equivalence, but for the 10,742 real-world scripts they only check that the modified code parses and runs without exceptions, so if many converted scripts silently stop fingerprinting, the reported evasion would be an artifact of broken code rather than successful obfuscation.

Editorial extensions

If this is right

  • If a tracker converts fingerprinting scripts to WASM with the pipeline's ~85% success rate, research detectors that rely on JS source features can be degraded or disabled, depending on their training data and toolchain.
  • Balanced retraining that includes WASM-converted fingerprinting and non-fingerprinting scripts can restore a static detector's accuracy on both JS and WASM variants, suggesting the vulnerability is partially data, not just architecture.
  • Browser extensions and built-in defenses that spoof or block fingerprinting APIs stay effective against JS-to-WASM conversion, making API-level interception a more durable defense than source analysis.
  • A WASM-native fingerprinting technique that avoids canvas, WebGL, and other monitored APIs can bypass all tested API-centric defenses, meaning API-level defenses alone are insufficient against lower-level timing side channels.
  • No single conversion rule causes evasion; the combined effect of multiple rules is required, which justifies treating obfuscation as a holistic transformation rather than a single patch.
  • The one-shot conversion cost is amortized because fingerprinting scripts are reused across many users, so the attack is economically practical for real trackers.

Reading between the lines

Editorial extensions of the paper, not claims the author makes directly.

  • A feature-aware adversary would likely outperform the greedy conversion: the paper's own feature-importance analysis shows which AST signals drive detection, and a targeted conversion that only hides those signals could achieve evasion with less code churn and less risk of breaking functionality.
  • The real-world conversion 'success' metric only checks parsing and execution, not fingerprint output equivalence; before claiming real-world evasion, one should measure whether converted scripts still return the same attribute values and API call sequences as their JS originals.
  • The robustness of API-level defenses is conditional on fingerprint signals flowing through JS-visible APIs; the success of native WASM timing fingerprinting suggests the next defensive layer should monitor WASM module instantiation, imported function boundary crossings, and execution timing rather than source syntax.
  • The paper's balanced-retraining result hints that future research detectors can be made WASM-aware cheaply, but no public model currently does this; a simple test is whether adding WASM-converted examples to training sets of other detectors generalizes beyond DeepFPD's features.
Share X Bluesky LinkedIn Reddit HN

Signed reviews

No signed human review yet.

Editorial analysis

A structured set of objections, weighed in public.

Desk editor's note, referee report, and a circularity audit.

Referee Report

1 major / 6 minor

Summary. The paper proposes an automated JS-to-WASM conversion pipeline (13 translation rules, including LLM-based function translation) and uses it to construct obfuscated variants of real-world and controlled fingerprinting scripts. It introduces a newly crawled corpus of 7.5M JS scripts, of which 10,742 are heuristically labeled as fingerprinting, plus a controlled paired dataset of 124 scripts. The evaluation measures how two research detectors (DeepFPD and FP-Inspector), ten browser extensions, and five built-in browser defenses cope with WASM-obfuscated and native-WASM fingerprinting. The central claim is a divergence: research feature-based detectors are moderately vulnerable to WASM obfuscation (e.g., DeepFPD recall on its test set drops from 77.78% to 44.44%; FP-Inspector becomes unusable), while API-level extensions and browser defenses remain effective, except for a native WASM timing-based fingerprinting technique.

Significance. If the central empirical claim holds, the paper makes a useful contribution: it is among the first systematic studies of JS-to-WASM obfuscation against fingerprinting defenses, it releases a large-scale corpus and a controlled dataset, and it provides a root-cause feature-importance analysis. The finding that API-level interception is more robust than source-level feature analysis is credible and practically relevant. The paper also includes a proof-of-concept dynamic analysis detector, which strengthens the claim that modern dynamic instrumentation can complement static analysis. However, the strength of the evidence is currently limited by two load-bearing issues: functional equivalence is not verified for the real-world converted corpus, and the evaluated 'DeepFPD' is a Random Forest approximation rather than the originally proposed deep model. These issues need to be addressed before the divergence claim can be accepted as stated.

major comments (1)
  1. [Table VII] The ablation study reports that no single rule changes DeepFPD classification metrics, but the individual success rates are low (9.70%–54.10%) and coverage is often near zero (e.g., 0.0004% for replace_with_regex). This means the ablation may be underpowered: most single-rule conversions do not meaningfully perturb the script. The conclusion that 'successful evasion requires a comprehensive obfuscation strategy' is not fully established by these data; it is also consistent with the interpretation that the rules only work when enough of the script is actually converted. Please discuss this alternative interpretation or add a coverage-threshold analysis.
minor comments (6)
  1. [§IV-C, Table VIII] The text says the controlled dataset contains '32 JS scripts of 7 different types,' but the Introduction and Table VIII describe a controlled dataset of 124 scripts. Please clarify the relationship between base scripts and variants.
  2. [Table II] The 'Mean ± SD' row reports success rate as 85.76% ± 1.26; use percentage points or add a note to avoid ambiguity.
  3. [Table V] For Disconnect, Privacy Badger, and uBlock Origin, the 'Affected by WASM Conversion?' column says 'No,' but the notes state the tools were not triggered in the locally hosted setup. These should be labeled 'Not triggered in local setup' rather than 'No,' since the experiment cannot distinguish immunity from non-exercise.
  4. [Figure 5] The axis label '1 0 flips' appears to be a typo for '10 flips.'
  5. [§IV-B, Rule 9] LLM-generated AssemblyScript is validated only by compilation and execution. A short statement in the limitations that semantic equivalence of LLM-translated functions is not individually verified would be helpful.
  6. [General] The paper does not include an explicit data/code availability statement. Given the emphasis on releasing a corpus and pipeline, please state whether the code, converted datasets, and detection implementations will be made available.

Circularity Check

0 steps flagged · score 0.0 of 10

No significant circularity; the paper is an empirical measurement study with independent test sets and no load-bearing self-citations.

full rationale

This is an empirical measurement study, not a derivation, so the circularity burden is low. The central claim that WASM conversion lowers DeepFPD's recall on its own test set from 77.78% to 44.44% is an experimentally measured result, not a quantity forced by construction: DeepFPD was trained on its original dataset and evaluated on independently labeled or manually constructed test sets, and the conversion rules were not fitted to DeepFPD's parameters. The real-world corpus is labeled using FP-Inspector heuristics, but FP-Inspector is not scored against that same label set; its failure in Experiment 2 is reported as a toolchain incompatibility (Firefox 52 ESR without WASM support), not as a self-referential detection result. The retraining augmentation was tuned post hoc, which is a selection/overfitting concern rather than circular reasoning. The functional-equivalence gap for real-world conversions—hash verification only on the controlled dataset, parse/execute checks elsewhere—is a threat to validity and is explicitly acknowledged in Section IV-C, but it does not make any prediction equivalent to its inputs. Citations to Wobfuscator and Guri et al. are external prior work used as motivation or technique, not as proof of the paper's own results, and no uniqueness theorem or self-citation chain is load-bearing. Therefore no circular step meets the evidentiary standard.

Assumptions & free parameters 2 free parameters · 4 assumptions · 0 invented entities

This is an empirical systems paper, so the ledger captures design choices and assumptions rather than fitted physical parameters. The main free parameter is the post hoc balanced augmentation composition that made retraining succeed; the main ad hoc assumptions are semantic preservation of LLM-translated functions and of the whole greedy conversion on real-world scripts. No invented entities such as new particles or forces are introduced.

free parameters (2)
  • Balanced augmentation composition = 414 Canvas, 537 AudioContext, 190 WebRTC, 525 non-fingerprinting
    Post hoc configuration chosen after category-wise augmentation impaired accuracy; the reported retraining result depends on this exact balance.
  • Random Forest vocabulary size = 5000
    Bounded bag-of-words features for the DeepFPD reimplementation; changes the feature space and could affect evasion outcomes.
assumptions (4)
  • domain assumption WebAssembly.instantiate behaves per spec in modern browsers
    The conversion pipeline's IIAFE wrapper and async instantiation rely on standard WASM APIs; assumed functional in the Chrome/Firefox test environments.
  • domain assumption FP-Inspector heuristic labels of fingerprinting scripts are accurate
    Real-world corpus labeling uses FP-Inspector's heuristics (Section IV-C); if labels are noisy, training and test sets inherit errors.
  • ad hoc to paper LLM-translated AssemblyScript preserves original JS function semantics
    Rule 9 uses Qwen2.5-Coder-14B to translate function bodies; correctness is validated only by runtime execution without exceptions, not by output equivalence on real-world scripts.
  • ad hoc to paper Execution without runtime exceptions implies functional preservation
    The three-stage validation in Section V-A checks compilation, parsing, and execution, but does not compare fingerprint outputs for real-world scripts.

how reviews work

0 comments
Cite this review

Pith. "Pith review of To WASM or Not to WASM: Evaluation of Browser Fingerprinting Defenses Under WASM based Obfuscation." pith.science (2026). https://pith.science/paper/IU75YZLP

@misc{pith2026250821219,
  author       = {Pith},
  title        = {Pith review of: To WASM or Not to WASM: Evaluation of Browser Fingerprinting Defenses Under WASM based Obfuscation},
  year         = {2026},
  howpublished = {\url{https://pith.science/paper/IU75YZLP}},
  note         = {Machine review of arXiv:2508.21219}
}
read the original abstract

Browser fingerprinting defenses have historically focused on detecting JavaScript(JS)-based tracking techniques. However, the widespread adoption of WebAssembly (WASM) introduces a potential blind spot, as adversaries can convert JS to WASM's low-level binary format to obfuscate malicious logic. This paper presents the first systematic evaluation of how such WASM-based obfuscation impacts the robustness of modern fingerprinting defenses. We develop an automated pipeline that translates real-world JS fingerprinting scripts into functional WASM-obfuscated variants and test them against two classes of defenses: state-of-the-art detectors in research literature and commercial, in-browser tools. Our findings reveal a notable divergence: detectors proposed in the research literature that rely on feature-based analysis of source code show moderate vulnerability, stemming from outdated datasets or a lack of WASM compatibility. In contrast, defenses such as browser extensions and native browser features remained completely effective, as their API-level interception is agnostic to the script's underlying implementation. These results highlight a gap between academic and practical defense strategies and offer insights into strengthening detection approaches against WASM-based obfuscation, while also revealing opportunities for more evasive techniques in future attacks.

Figures

Figures reproduced from arXiv: 2508.21219 by the authors.

Figure 1
Figure 1. Adversary model. (see [PITH_FULL_IMAGE:figures/full_fig_p003_1.png] view at source ↗
Figure 2
Figure 2. Conversion pipeline. the compiled WASM module in place of the original code. 3) The artifacts from all matched rules are aggregated: As￾semblyScript snippets are merged into a single file and compiled into a WASM binary; import object entries are unified into a single import object; and glue code snippets are inserted into the original JS at their respective posi￾tions. Overlapping replacements are filtered out to p… view at source ↗
Figure 3
Figure 3. Conversion performance by fingerprinting category [PITH_FULL_IMAGE:figures/full_fig_p009_3.png] view at source ↗
Figures from the paper (5 more)
Figure 4
Figure 4. Figure 4: Classification metrics for DeepFPD dataset for JS and [PITH_FULL_IMAGE:figures/full_fig_p010_4.png]
Figure 5
Figure 5. Figure 5: Aggregated delta plot of feature contribution changes. [PITH_FULL_IMAGE:figures/full_fig_p011_5.png]
Figure 7
Figure 7. Figure 7: Change in DeepFPD feature contributions for repre [PITH_FULL_IMAGE:figures/full_fig_p017_7.png]
Figure 8
Figure 8. Figure 8: Confusion matrices for DeepFPD predictions on orig [PITH_FULL_IMAGE:figures/full_fig_p017_8.png]
Figure 6
Figure 6. Figure 6: Running mean and 95% confidence intervals of conversion metrics on the real-world dataset. [PITH_FULL_IMAGE:figures/full_fig_p018_6.png]

Discussion (0). Continue with ORCID to comment.

Pith tools

Reviewed August 5, 2026 · model on record in the stance chip above.