Skip to content

Poison LinkedIn-style WAR probes and close stealth/list gaps - #7

Merged
G-man3207 merged 4 commits into
mainfrom
cursor/noise-learned-paths-ecd7
Aug 21, 2026
Merged

G-man3207 merged 4 commits into
mainfrom
cursor/noise-learned-paths-ecd7

Conversation

@G-man3207

@G-man3207 G-man3207 commented Aug 21, 2026

Copy link
Copy Markdown
Owner

Noise mode was answering a conservative path allowlist (manifest.json, icon.png, content.js, …). LinkedIn AED and similar collectors do not fetch those names — they fetch the specific web_accessible_resources file they catalogued for each ID (inpage.js, src/css/*.css, phishing.html). Persona IDs were therefore still showing as “not installed,” so Noise was not poisoning the dataset that matters.

What changed

Learned-path Noise decoys. Static now records the WAR pathname each origin actually probes (query-stripped, charset-limited, max 96 chars, 8 paths per ID). After a path is seen at least twice for an eligible persona ID, later visits get a path-matched decoy. Unseen canaries, POST, and formats we cannot synthesize (webp/ico/bmp) stay fail-closed. Learned paths are local-only and omitted from research exports.

Castle-style side-effect coverage. DOM/global marker lists now include KeePassXC, Dark Reader, Bitwarden overlay (data-bw-*), and LanguageTool. KeePassXC-Browser is in the password-manager conflict slot with an ID-seeded manifest name.

Vendor DNR updates from current Fingerprint/DataDome docs and EasyPrivacy (2026-08-21): lexisnexisrisk.com, telemetry.stytch.com (telemetry host only, not Stytch auth), group-ib.ru, ipfingerprint.com, socure.io, nethone.com.

Firefox 153+ smoke CI. Marionette now blocks about:debugging / moz-extension:// unless the browser is started with --remote-allow-system-access. The Firefox smoke session uses that flag so UUID discovery and popup checks still run.

Tests

  • New tests/noise-learned-paths.spec.js covering LinkedIn-style {id, file} probes, fetch/XHR consistency, path canaries, query stripping, two-visit learning, script.src decoys, and tag/kind mismatch.
  • Static tests for path helper parity, path caps, bridge deltaIdPaths, KeePassXC ID, and new DNR hosts.
  • Research export must not contain learned pathnames.
  • DOM scrubber coverage for the new markers.
  • Local npm run test:ci: 42 static passed (1 skipped), 197 e2e passed.

Privacy stays local-first: no new network, no website URLs stored, research export still hashed/coarsened.

Open in Web Open in Cursor 

Noise now records the exact extension resource paths each origin probes and, after repeated evidence, answers those files for persona IDs. Allowlisted icons/entrypoints still work; first-visit path canaries, unsynthesizable formats, and POST stay fail-closed. Learned paths are local-only, query-stripped, capped, and omitted from research exports.

Also expand Castle-style DOM marker coverage, add KeePassXC-Browser to the password-manager slot, and close fingerprint-vendor DNR gaps from current provider/EasyPrivacy hosts.
The canary spec read storage immediately after fetch, racing the 150ms
bridge flush, so sanitizable paths like /icon.webp looked unlearned.
Scrubbing marker classes leaves the legitimate keep class, so the class
attribute remains. Assert that leftover instead of an empty attribute list.
Firefox 153 restricted Marionette navigation to http(s)/file/blob/about:blank,
which broke about:debugging UUID discovery and moz-extension popup checks.
Pass --remote-allow-system-access so the existing smoke session can run.
@G-man3207 G-man3207 self-assigned this Aug 21, 2026
@G-man3207
G-man3207 marked this pull request as ready for review August 21, 2026 11:16
@G-man3207
G-man3207 merged commit 959447a into main Aug 21, 2026
2 checks passed
@G-man3207
G-man3207 deleted the cursor/noise-learned-paths-ecd7 branch August 21, 2026 11:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants