en un clic
v8-poc-classification
// Checks if a POC provided by some JS and d8 flags is a vulnerability or just a regular bug.
// Checks if a POC provided by some JS and d8 flags is a vulnerability or just a regular bug.
Managing and querying Perfetto traces using the trace_processor MCP server.
Key commands for building, debugging, and testing in V8. Use when needing command syntax for gm.py, d8 flags, or run-tests.py. Do not use for environment setup.
Workflow for performance and memory evaluation in V8. Use when tasked with improving the performance or memory usage of a workload in V8. Do not use when debugging a crash or functionality issue.
Workflow for evaluating and refining agent debugging capabilities using designated test cases and Swarm principles. Use when evaluating subagent performance or creating benchmarks. Do not use for regular bug fixing.
Workflow for issue-based debugging in V8. Use when tasked with debugging a specific issue, usually associated with a Buganizer ID or a specific reproduction script. Do not use for performance regressions.
Guides the initial analysis and impact assessment of a V8 security report, strictly excluding implementation or fixing.
| name | v8-poc-classification |
| description | Checks if a POC provided by some JS and d8 flags is a vulnerability or just a regular bug. |
Use this skill to determine if a reported Proof-of-Concept (POC) crash is a security vulnerability or a regular bug through empirical technical analysis.
DCHECK failure or
relies on experimental flags, classify it as a Bug.Confirm the bug exists as reported.
d8 <provided-flags> <poc.js>.SBXCHECK, FATAL, or traps). If
so, this is typically Intended Behavior (see guidelines below).Determine if the bug remains a vulnerability under production restrictions.
provided_flags + --run-as-[sandbox]-security-poc.--allow-natives-syntax? Is it an experimental compiler flag?%OptimizeFunctionOnNextCall(f) with a loop that
triggers Tier-up: for(let i=0; i<10000; i++) f();.%ArrayBufferDetach(b) with a standard way to
detach/transfer if possible.--fuzzing or a non-shipping experimental flag) to trigger the memory
corruption, the report is likely a Bug, not a vulnerability.Technical proof of the vulnerability's severity.
--future, you MUST identify the minimal set of flags responsible for the
behavior.
src/flags/flag-definitions.h for flags
implied by the reported flags.SBXCHECK, FATAL),
classify it as Intended Behavior or a Bug..js
file that crashes on a Release build.0x41414141)?--trace-maglev-graph-building) to confirm the discrepancy.The classification MUST be supported by empirical evidence from the local reproduction:
d8 <flags> <poc.js> (Exact command used locally).src/utils/version.h and the specific git hash
using git rev-parse HEAD for technical accuracy.ref.cast or bounds checks) without crashing, state this clearly.Summary of rules from triaging.md based on the threat model:
--run-as-security-poc).--future), developer
flags, or only triggers a DCHECK or reliable CHECK (safe termination).SBXCHECK, FATAL, or
hardened libc++ checks).
int3 (x64), brk #0 (arm64), or calls
to the Abort builtin or the runtime function in the backtrace/disassembly.
Also look for "Fatal error" or "Safely terminating process" in stderr, or
calls to v8::base::OS::Abort in the backtrace.--sandbox-testing.memset,
memcpy) hitting guard regions, or corrupting trusted objects with
well-formed data of the same type. Also includes breaking internal invariants
using testing-only natives (restricted by IsEnabledForFuzzing) if the impact
is safely contained.