agents/skills/v8-security-triaging/SKILL.md
Use this skill to orchestrate the initial analysis and impact assessment of a V8 security vulnerability report.
render_issue) as the primary
source of truth. Use render_issue_with_external if content is redacted.--sandbox-testing or the Sandbox API). These are strictly governed
by the V8 Sandbox threat model.mcp_Buganizer_list_components to verify existence and
mcp_Buganizer_get_component to verify the component path and ID before
posting.use_remoteexec = true in GN
arguments for all local builds to speed up the process, even if a reporter
provides a configuration where it is set to false. Remote execution is
strictly an environmental optimization and does not affect reproduction logic.DebugEvaluate, or experimental features) that might have different security
properties.poc.js) using the Buganizer MCP tools. If the tools fail, MUST ask the
user to provide the content manually. Do not speculatively search for
restricted attachments.v8-poc-classification is mandatory.invoke_agent. The Orchestrator's role is strictly limited to reviewing
subagent summaries and coordinating the next step.When executing a triage task, delegate tactical steps to subagents:
find_experts_for_file), and locating Buganizer components.git checkout) and building specific
variants (Release, ASan, non-ASan).Task the Researcher subagent with gathering all necessary data from Buganizer.
<id>, extract the POC and d8 flags, find top experts for affected files, and
identify the correct component. Instruct the subagent to return only a concise
technical summary."d8 flags,
the reporter's environment (commit hash/version), and the identified
introduction commit (regression range).src/utils/version.h and the specific git hash using
git rev-parse HEAD. Prioritize referencing specific git hashes over generic
terms like "HEAD" in triage reports.Blink > JavaScript > Maglev).Task the Tester, Builder, and Generalist subagents with confirming the issue. You MUST confirm the bug exists before proceeding.
Task the Tester and Generalist to determine if the bug violates a security boundary.
reporter_flags + --run-as-[sandbox]-security-poc.Task the Debugger, Tester, and Generalist to provide technical proof of impact.
v8-poc-classification.
Security_Impact-None.Draft a concise synthesis based on verified subagent findings.
v8-security-triaging skill (Conversation ID: <id>)." You MUST retrieve
the <id> from the INVOKER_INFO_SESSION_ID environment variable.Classification: Vulnerability / Bug / Not a Bug (Intended Behavior) / Failed to Reproduce. MANDATORY: Only classify as "Vulnerability" if local reproduction was successful. If reproduction fails, classify as "Failed to Reproduce".
Security Impact: Provide the label (e.g., Security_Impact-Head) and a
short explanation. Skip or simplify the CVSS vector unless requested.
Proposed Severity: Provide the proposed severity (e.g., S1) based on
triaging.md and Chromium guidelines.
Introduced In / Regression Range: Provide the commit or version where the vulnerability was introduced, if identifiable.
Rationale: Explain the technical conclusion. For sandbox bypasses, explicitly state if it violates the threat model.
Local Reproduction Findings: Follow the structure and mandatory fields
defined in the Classification Guidelines of v8-poc-classification.
Ensure all technical data (Status, Reproduction command, Result, Build
(including version from src/utils/version.h and git hash), Verified
Impact, and optional GDB Backtrace) is included here.
Proposed Owner: Based on expert discovery. Include a very short (half sentence) explanation for the choice (e.g., "author of affected code", "primary maintainer of subsystem").
Proposed Component: Propose the most specific Buganizer component
possible (e.g., Parser, Maglev, Turbofan) if the current component is
the top-level V8 engine component or is otherwise incorrect. Include the
component path and ID.
Proposed Title: If the current title is generic, propose a more descriptive title.
ClusterFuzz Upload Info (User Only): If a real crash or memory corruption is confirmed and it has NOT yet been uploaded to ClusterFuzz, provide all necessary details for a manual upload (repro file, job name, issue ID, and flags) to the user. Explicitly advise the user to perform the upload.
Task a Generalist subagent acting as a "Security Triage Auditor" to review the draft.
docs/security/triaging.md and the Technical Quality Checklist. Ensure the
classification is technically sound and the formatting is correct. If errors
are found, distinguish between text-only corrections and missing technical
work."docs/security/triaging.md? (e.g., nullptr is a Bug, safe termination is
Intended Behavior).--run-as-[sandbox]-security-poc)?V8)?--experimental-* flags and is not
part of --future or --wasm-staging, it is a Bug, not a Vulnerability.DCHECK failures are Bugs. CHECK failures are
Intended Behavior (safe termination) unless they are in-sandbox and part
of a sandbox bypass claim.--shell or --isolate are
Bugs.