Bundled with Unleash skills pack. Source: C:\Users\Admin.agents\skills\browser-security-research\SKILL.md
Browser Security Research
Campaign Goal
Prioritize latest-stable bugs that provide:
- renderer/native code execution from web content;
- renderer-to-browser/GPU/network/utility process escape;
- site-isolation or cross-origin data compromise;
- browser-to-OS sandbox escape;
- zero/one-click chains in widely deployed embedded webviews.
XSS alone is excluded. A web primitive qualifies only when it crosses a native, origin, process, sandbox, or OS boundary.
Phase 1: Pin Stable Bytes and Process Model
Record:
- exact latest stable browser and engine build;
- OS build, architecture, hardware features, GPU/driver, and mitigations;
- component-updated modules/codecs/models;
- command line and policy state without unsafe debugging flags;
- process tree, sandbox profiles/tokens, site isolation, JIT mode, and feature flags;
- symbols/source revision corresponding to shipped bytes;
- clean profile and reset procedure.
Do not base eligibility on Canary/Nightly/Technology Preview. Use those channels only for differential clues, then reproduce on stable.
Completion criterion: shipped stable binary maps to an exact source revision or a documented binary-only baseline.
Phase 2: Select a Boundary
Renderer attack surfaces
- JavaScript/Wasm JIT and runtime objects;
- DOM/layout/style state machines;
- image, media, font, PDF, archive, and structured-data parsers;
- WebRTC, WebGPU/WebGL, WebCodecs, accessibility, printing;
- extension/content-script bridges;
- lifetime across navigation, frame detach, workers, and async callbacks.
Sandbox boundaries
- renderer-to-browser IPC;
- GPU, network, audio, storage, PDF, utility, and crash-handler processes;
- brokered filesystem, registry, device, and handle operations;
- shared memory, data pipes, serialized handles, and object capabilities;
- platform service bridges: Windows COM/WinRT, macOS XPC/IOSurface, Linux portals/D-Bus;
- kernel-facing graphics and media interfaces reachable from restricted processes.
Choose one boundary and document attacker preconditions and desired capability.
Phase 3: Build the Reachability Graph
For web-visible API or compromised-renderer input, trace:
IDL/API -> binding conversion -> renderer implementation -> IPC serialization
-> receiving process validation -> broker/platform operation -> OS object
Record:
- feature/policy/origin gates;
- object ownership and lifetime;
- process performing each validation;
- integer and type conversions;
- associated endpoint/frame/document identity;
- capability/handle rights transferred;
- callback ordering during navigation, destruction, crash, and reconnect.
Completion criterion: every edge identifies the trust level and validation owner.
Phase 4: Renderer Bug Campaigns
Lifetime/state
Generate sequences involving:
- create/use/detach/navigate/destroy;
- nested event loops and synchronous callbacks;
- worker termination and page freeze/restore;
- media/GPU reset and context loss;
- cross-thread ownership and cancellation;
- history/BFCache/prerender transitions.
JIT/compiler
Differentially stress:
- type feedback invalidation;
- bounds-check elimination;
- representation changes and NaN/tagging;
- deoptimization and exception edges;
- Wasm table/memory growth and tier transitions;
- optimizer assumptions across side effects.
Require a minimized semantic mismatch or sanitizer finding before exploit work. Do not classify ordinary spec divergence as memory corruption.
Parsers
Use structure-aware fuzzing with valid corpora, incremental/streaming input, truncation, metadata disagreement, extreme dimensions/counts, and cross-parser handoff.
Completion criterion: harness reaches real shipped parsing code with sanitizers or reliable crash triage.
Phase 5: IPC and Sandbox-Escape Campaigns
For every reachable message/method, test:
- enum/range/count and nested object validation;
- endpoint/frame/process identity binding;
- stale object IDs after navigation or process reuse;
- duplicate, reordered, canceled, and late replies;
- handles with excess rights or wrong object types;
- shared-memory size, offset, mutability, and TOCTOU;
- broker path canonicalization and reparse/symlink behavior;
- privileged service methods exposed to a restricted process;
- receiver assumptions enforced only by generated client code;
- feature paths that bypass the normal broker.
Build a compromised-renderer harness where supported. A renderer bug should not be required merely to test broker validation.
Completion criterion: each candidate demonstrates a capability unavailable under the intended sandbox policy.
Phase 6: Site Isolation and Origin Boundaries
Test identity continuity across:
- redirects, opener relationships, portals/fenced frames/prerender;
- process swaps and speculative frames;
- blob/filesystem/data URLs;
- service/shared workers and storage partitions;
- extension and browser-internal schemes;
- crash recovery and session restore;
- credentialless/cross-origin isolation modes.
Prove actual cross-origin data or authority, not only unexpected process co-location.
Phase 7: Exploitability and Chains
For memory corruption, determine:
- controlled read/write/free and object shape;
- allocator partition and quarantine behavior;
- pointer compression, CFI, CET/PAC, MTE, MiraclePtr/BackupRefPtr-like defenses;
- JIT RWX/W^X policy;
- process token/profile and available system calls;
- stable primitive across restarts and normal browser flags.
Keep renderer and escape root causes separate. A full chain report should show which primitive crosses each boundary.
Phase 8: Variant and Stable Validation
- diff recent security fixes and hardening changes;
- search sibling message handlers and platform backends;
- compare browser implementation with embedded WebView/Electron-like consumers only where deployment qualifies;
- test stable on major desktop/mobile OSes affected by the shared code;
- rerun after component updates and stable releases;
- apply the novelty gate against issue trackers, regression tests, fuzz bug references, and advisories.
Common Pitfalls
- Finding a bug only with
--no-sandbox or unsafe feature flags.
- Treating renderer RCE as a sandbox escape.
- Fuzzing generated IPC stubs while missing receiver semantics.
- Ignoring navigation and object-lifetime identity.
- Claiming origin impact from process placement alone.
- Testing Nightly but not current stable.
- Using an embedded browser version with negligible deployment.
- Starting exploit work before minimizing the root cause.
Verification Checklist
1---2name: browser-security-research3description: Use when hunting new vulnerabilities in the latest stable Chromium, Firefox, WebKit/Safari, or embedded browser stack, including renderer RCE, IPC/broker flaws, sandbox escapes, site-isolation violations, JIT/compiler bugs, DOM/media/font/image parsers, GPU processes, extensions, and browser-to-OS exploit chains.4license: MIT5---67> Bundled with Unleash skills pack. Source: C:\Users\Admin\.agents\skills\browser-security-research\SKILL.md89# Browser Security Research1011## Campaign Goal1213Prioritize latest-stable bugs that provide:14151. renderer/native code execution from web content;162. renderer-to-browser/GPU/network/utility process escape;173. site-isolation or cross-origin data compromise;184. browser-to-OS sandbox escape;195. zero/one-click chains in widely deployed embedded webviews.2021XSS alone is excluded. A web primitive qualifies only when it crosses a native, origin, process, sandbox, or OS boundary.2223## Phase 1: Pin Stable Bytes and Process Model2425Record:2627- exact latest stable browser and engine build;28- OS build, architecture, hardware features, GPU/driver, and mitigations;29- component-updated modules/codecs/models;30- command line and policy state without unsafe debugging flags;31- process tree, sandbox profiles/tokens, site isolation, JIT mode, and feature flags;32- symbols/source revision corresponding to shipped bytes;33- clean profile and reset procedure.3435Do not base eligibility on Canary/Nightly/Technology Preview. Use those channels only for differential clues, then reproduce on stable.3637Completion criterion: shipped stable binary maps to an exact source revision or a documented binary-only baseline.3839## Phase 2: Select a Boundary4041### Renderer attack surfaces4243- JavaScript/Wasm JIT and runtime objects;44- DOM/layout/style state machines;45- image, media, font, PDF, archive, and structured-data parsers;46- WebRTC, WebGPU/WebGL, WebCodecs, accessibility, printing;47- extension/content-script bridges;48- lifetime across navigation, frame detach, workers, and async callbacks.4950### Sandbox boundaries5152- renderer-to-browser IPC;53- GPU, network, audio, storage, PDF, utility, and crash-handler processes;54- brokered filesystem, registry, device, and handle operations;55- shared memory, data pipes, serialized handles, and object capabilities;56- platform service bridges: Windows COM/WinRT, macOS XPC/IOSurface, Linux portals/D-Bus;57- kernel-facing graphics and media interfaces reachable from restricted processes.5859Choose one boundary and document attacker preconditions and desired capability.6061## Phase 3: Build the Reachability Graph6263For web-visible API or compromised-renderer input, trace:6465```text66IDL/API -> binding conversion -> renderer implementation -> IPC serialization67 -> receiving process validation -> broker/platform operation -> OS object68```6970Record:7172- feature/policy/origin gates;73- object ownership and lifetime;74- process performing each validation;75- integer and type conversions;76- associated endpoint/frame/document identity;77- capability/handle rights transferred;78- callback ordering during navigation, destruction, crash, and reconnect.7980Completion criterion: every edge identifies the trust level and validation owner.8182## Phase 4: Renderer Bug Campaigns8384### Lifetime/state8586Generate sequences involving:8788- create/use/detach/navigate/destroy;89- nested event loops and synchronous callbacks;90- worker termination and page freeze/restore;91- media/GPU reset and context loss;92- cross-thread ownership and cancellation;93- history/BFCache/prerender transitions.9495### JIT/compiler9697Differentially stress:9899- type feedback invalidation;100- bounds-check elimination;101- representation changes and NaN/tagging;102- deoptimization and exception edges;103- Wasm table/memory growth and tier transitions;104- optimizer assumptions across side effects.105106Require a minimized semantic mismatch or sanitizer finding before exploit work. Do not classify ordinary spec divergence as memory corruption.107108### Parsers109110Use structure-aware fuzzing with valid corpora, incremental/streaming input, truncation, metadata disagreement, extreme dimensions/counts, and cross-parser handoff.111112Completion criterion: harness reaches real shipped parsing code with sanitizers or reliable crash triage.113114## Phase 5: IPC and Sandbox-Escape Campaigns115116For every reachable message/method, test:117118- enum/range/count and nested object validation;119- endpoint/frame/process identity binding;120- stale object IDs after navigation or process reuse;121- duplicate, reordered, canceled, and late replies;122- handles with excess rights or wrong object types;123- shared-memory size, offset, mutability, and TOCTOU;124- broker path canonicalization and reparse/symlink behavior;125- privileged service methods exposed to a restricted process;126- receiver assumptions enforced only by generated client code;127- feature paths that bypass the normal broker.128129Build a compromised-renderer harness where supported. A renderer bug should not be required merely to test broker validation.130131Completion criterion: each candidate demonstrates a capability unavailable under the intended sandbox policy.132133## Phase 6: Site Isolation and Origin Boundaries134135Test identity continuity across:136137- redirects, opener relationships, portals/fenced frames/prerender;138- process swaps and speculative frames;139- blob/filesystem/data URLs;140- service/shared workers and storage partitions;141- extension and browser-internal schemes;142- crash recovery and session restore;143- credentialless/cross-origin isolation modes.144145Prove actual cross-origin data or authority, not only unexpected process co-location.146147## Phase 7: Exploitability and Chains148149For memory corruption, determine:150151- controlled read/write/free and object shape;152- allocator partition and quarantine behavior;153- pointer compression, CFI, CET/PAC, MTE, MiraclePtr/BackupRefPtr-like defenses;154- JIT RWX/W^X policy;155- process token/profile and available system calls;156- stable primitive across restarts and normal browser flags.157158Keep renderer and escape root causes separate. A full chain report should show which primitive crosses each boundary.159160## Phase 8: Variant and Stable Validation161162- diff recent security fixes and hardening changes;163- search sibling message handlers and platform backends;164- compare browser implementation with embedded WebView/Electron-like consumers only where deployment qualifies;165- test stable on major desktop/mobile OSes affected by the shared code;166- rerun after component updates and stable releases;167- apply the novelty gate against issue trackers, regression tests, fuzz bug references, and advisories.168169## Common Pitfalls1701711. Finding a bug only with `--no-sandbox` or unsafe feature flags.1722. Treating renderer RCE as a sandbox escape.1733. Fuzzing generated IPC stubs while missing receiver semantics.1744. Ignoring navigation and object-lifetime identity.1755. Claiming origin impact from process placement alone.1766. Testing Nightly but not current stable.1777. Using an embedded browser version with negligible deployment.1788. Starting exploit work before minimizing the root cause.179180## Verification Checklist181182- [ ] Latest stable shipped bytes and source revision pinned183- [ ] Normal sandbox and feature configuration preserved184- [ ] Web/renderer-to-sink reachability graph complete185- [ ] Trust owner identified for every validation186- [ ] Renderer, IPC, origin, and OS boundaries classified separately187- [ ] Harness reaches shipped implementation188- [ ] Root cause minimized with negative control189- [ ] Sandbox capability gain or native primitive proven190- [ ] Mitigations and chain requirements assessed191- [ ] Stable-version and novelty gates rerun192