Bundled with Unleash skills pack. Source: C:\Users\Admin.agents\skills\zero-day-target-eligibility\SKILL.md
Zero-Day Target Eligibility
Purpose
Fail closed before investing months in a technically valid but ineligible bug. Re-run the gate whenever the vendor ships an update, the finding becomes public, or impact changes.
This skill decides eligibility, not whether a crash is exploitable.
For Trend Micro Zero Day Initiative (ZDI) submissions — portal workflow, valuation
factors, exclusivity/IP assignment, disclosure SLAs, reward tiers, and live product-interest
suspensions — also load zdi-researcher-guidelines and re-check ZDI bulletins before submit.
Hard Gates
A candidate remains active only when all are true:
- Current: reproduced on the latest stable/GA product and all independently updated components as of the verification date.
- Deployed: credible evidence shows widespread consumer, enterprise, infrastructure, OEM, cloud, or OS distribution.
- Novel: no public source describes the same affected component, trigger, root cause, and security impact.
- Security boundary: impact crosses a meaningful confidentiality, integrity, availability, privilege, sandbox, guest/host, tenant, or pre-auth boundary.
- In scope: not merely XSS, DLL planting, a live-site configuration issue, ActiveX, consumer-only game software, pre-release-only behavior, or an already published bug.
If evidence is missing, mark UNVERIFIED; do not silently treat it as passing.
Latest-Stable Gate
Establish authoritative versions
Record, with retrieval date and URLs:
- vendor release channel and latest stable version/build;
- security and cumulative updates;
- component versions that update independently;
- browser engine/runtime build;
- security-product platform, engine, definitions, and management-server version;
- mobile OS and monthly security patch level;
- hypervisor and device-model package version;
- appliance firmware and hardware revision;
- cloud/server rolling release identifier where a downloadable version does not exist.
Prefer vendor release notes, signed package metadata, in-product version output, and update catalogs. Third-party version sites are corroboration only.
Reproduction matrix
| Product/channel |
Build/component |
Patch date |
Clean install or upgraded |
Trigger result |
Evidence |
| latest stable |
|
|
|
|
|
| latest stable clean |
|
|
|
|
|
| previous stable |
|
|
|
|
|
| beta/pre-release |
|
|
|
|
|
Rules:
- A beta-only result fails.
- A previous-version-only result fails even if still supported, unless the acquisition policy explicitly accepts it.
- A finding seen on beta passes this gate only after independent reproduction on latest stable.
- For SaaS/live services, do not test production tenants merely to satisfy freshness; use vendor-provided local, lab, appliance, or program-authorized environments.
- Re-run after every relevant release until submission.
Completion criterion: exact latest stable bytes/configuration are archived or hash-identified and the trigger reproduces there.
Deployment Gate
Collect at least two independent signals where possible:
- bundled/default OS component;
- vendor install-base or active-device figures;
- enterprise market presence or standard infrastructure role;
- cloud marketplace/download/package telemetry;
- OEM preload or appliance fleet evidence;
- common dependency embedded in many products;
- default exposure in server, browser, mobile, hypervisor, or security deployments.
Do not equate GitHub stars with deployment. A low-profile parser embedded in a major product can qualify; a popular developer toy may not.
Classify:
PERVASIVE: bundled/default or very large install base;
WIDESPREAD: strong enterprise/consumer deployment evidence;
MATERIAL: meaningful but uncertain deployment;
NICHE: reject unless exceptional impact changes policy priority.
Completion criterion: deployment classification cites concrete evidence and identifies who runs the affected component.
Novelty Gate
Search by all of:
- product and component names;
- function, service, protocol method, message type, file format, and error signature;
- root-cause pattern and sink API;
- patch diff and changed check;
- crash stack and distinctive strings;
- vendor advisories, CVE databases, security bulletins, issue trackers, commits, release notes, mailing lists, conference material, blogs, forums, PoC repositories, and exploit indexes.
Maintain a novelty ledger:
| Source/date |
Closest public issue |
Same component? |
Same root cause? |
Same trigger? |
Same impact? |
Distinction |
A known bug can seed a new variant. The candidate remains novel only if the affected instance or invariant failure is materially distinct and not publicly described.
Stop and reclassify if a matching disclosure appears. Preserve dates and hashes proving when research began, but do not call a public bug a zero-day.
Completion criterion: closest known issues are documented and the distinction is root-cause based, not cosmetic input variation.
Impact and Priority Score
Score only after hard gates pass.
| Dimension |
0 |
1 |
2 |
3 |
| Reachability |
local/admin |
local low-priv |
authenticated remote |
unauthenticated remote |
| Result |
low impact |
DoS/disclosure |
privilege/sandbox boundary |
reliable code execution/host escape |
| Deployment |
niche |
material |
widespread |
pervasive/default |
| Enterprise value |
consumer-only |
mixed |
enterprise common |
core server/security/infrastructure |
| Interaction |
complex user action |
normal user action |
low interaction |
none |
| Reliability |
theoretical |
unstable |
repeatable |
deterministic |
Priority order when scores are close:
- unauthenticated server-side RCE;
- VM or sandbox escape with practical initial foothold;
- browser or OS remote code execution;
- security-product RCE/LPE/bypass in enterprise deployments;
- SCADA/IIoT gateway, engineering workstation, or management-plane RCE;
- mobile zero-click/one-click chains;
- high-impact local privilege escalation in pervasive OS components.
Exclusion Filter
Reject or deprioritize:
- reflected/stored/DOM XSS without an exceptional native or tenant boundary;
- search-order/DLL planting requiring attacker control already equivalent to impact;
- live website bugs rather than shippable product defects;
- ActiveX-only issues;
- beta, nightly, Insider, Canary, developer-preview, or unreleased hardware-only behavior;
- games and consumer-only software unless a widely deployed security/IoT component is actually affected;
- known, publicly posted, duplicate, or trivially rediscovered issues;
- crashes without a proven security boundary;
- unsupported/default-disabled modules with negligible deployment;
- products or classes currently suspended on the ZDI bulletins board (see
zdi-researcher-guidelines).
Document the rejection reason so the campaign does not rediscover the same dead end.
Campaign Card
Every active target gets:
Target/product:
Latest stable proof:
Independent component versions:
Deployment class/evidence:
Attack surface:
Expected boundary:
Preferred impact:
Closest public work:
Novelty distinction:
Exclusion risks:
Research environment:
Next falsifiable experiment:
Revalidation deadline:
Status: ELIGIBLE | UNVERIFIED | REJECTED | PUBLIC
Revalidation Cadence
Re-run gates:
- at campaign start;
- after every vendor update affecting the component;
- before exploit engineering;
- before reporting/submission;
- immediately after a related public disclosure;
- after 30 days of inactivity.
Automate version checks where possible, but manually confirm package/component versions in the actual test environment.
Common Pitfalls
- Calling “latest supported” the “latest available” release.
- Checking OS build but not an independently serviced engine or firmware component.
- Treating a different crashing input as a novel root cause.
- Using popularity proxies without deployment evidence.
- Spending weeks weaponizing before checking exclusions.
- Letting a stale VM remain the only reproducer.
- Assuming a beta fix means stable is affected; test stable bytes directly.
- Searching CVE titles only; public root causes often use different vocabulary.
Verification Checklist
1---2name: zero-day-target-eligibility3description: Use before or during a vulnerability-research campaign governed by strict acquisition criteria: the bug must affect the latest stable product, have widespread deployment, remain non-public, and prioritize RCE, enterprise/server software, operating systems, browsers, sandbox or VM escapes, SCADA/IIoT, and security products. Provides fail-closed version, novelty, deployment, impact, and exclusion...4license: MIT5---67> Bundled with Unleash skills pack. Source: C:\Users\Admin\.agents\skills\zero-day-target-eligibility\SKILL.md89# Zero-Day Target Eligibility1011## Purpose1213Fail closed before investing months in a technically valid but ineligible bug. Re-run the gate whenever the vendor ships an update, the finding becomes public, or impact changes.1415This skill decides **eligibility**, not whether a crash is exploitable.1617For Trend Micro **Zero Day Initiative (ZDI)** submissions — portal workflow, valuation18factors, exclusivity/IP assignment, disclosure SLAs, reward tiers, and **live product-interest19suspensions** — also load `zdi-researcher-guidelines` and re-check ZDI bulletins before submit.2021## Hard Gates2223A candidate remains active only when all are true:24251. **Current:** reproduced on the latest stable/GA product and all independently updated components as of the verification date.262. **Deployed:** credible evidence shows widespread consumer, enterprise, infrastructure, OEM, cloud, or OS distribution.273. **Novel:** no public source describes the same affected component, trigger, root cause, and security impact.284. **Security boundary:** impact crosses a meaningful confidentiality, integrity, availability, privilege, sandbox, guest/host, tenant, or pre-auth boundary.295. **In scope:** not merely XSS, DLL planting, a live-site configuration issue, ActiveX, consumer-only game software, pre-release-only behavior, or an already published bug.3031If evidence is missing, mark `UNVERIFIED`; do not silently treat it as passing.3233## Latest-Stable Gate3435### Establish authoritative versions3637Record, with retrieval date and URLs:3839- vendor release channel and latest stable version/build;40- security and cumulative updates;41- component versions that update independently;42- browser engine/runtime build;43- security-product platform, engine, definitions, and management-server version;44- mobile OS and monthly security patch level;45- hypervisor and device-model package version;46- appliance firmware and hardware revision;47- cloud/server rolling release identifier where a downloadable version does not exist.4849Prefer vendor release notes, signed package metadata, in-product version output, and update catalogs. Third-party version sites are corroboration only.5051### Reproduction matrix5253| Product/channel | Build/component | Patch date | Clean install or upgraded | Trigger result | Evidence |54|---|---|---|---|---|---|55| latest stable | | | | | |56| latest stable clean | | | | | |57| previous stable | | | | | |58| beta/pre-release | | | | | |5960Rules:6162- A beta-only result fails.63- A previous-version-only result fails even if still supported, unless the acquisition policy explicitly accepts it.64- A finding seen on beta passes this gate only after independent reproduction on latest stable.65- For SaaS/live services, do not test production tenants merely to satisfy freshness; use vendor-provided local, lab, appliance, or program-authorized environments.66- Re-run after every relevant release until submission.6768Completion criterion: exact latest stable bytes/configuration are archived or hash-identified and the trigger reproduces there.6970## Deployment Gate7172Collect at least two independent signals where possible:7374- bundled/default OS component;75- vendor install-base or active-device figures;76- enterprise market presence or standard infrastructure role;77- cloud marketplace/download/package telemetry;78- OEM preload or appliance fleet evidence;79- common dependency embedded in many products;80- default exposure in server, browser, mobile, hypervisor, or security deployments.8182Do not equate GitHub stars with deployment. A low-profile parser embedded in a major product can qualify; a popular developer toy may not.8384Classify:8586- `PERVASIVE`: bundled/default or very large install base;87- `WIDESPREAD`: strong enterprise/consumer deployment evidence;88- `MATERIAL`: meaningful but uncertain deployment;89- `NICHE`: reject unless exceptional impact changes policy priority.9091Completion criterion: deployment classification cites concrete evidence and identifies who runs the affected component.9293## Novelty Gate9495Search by all of:9697- product and component names;98- function, service, protocol method, message type, file format, and error signature;99- root-cause pattern and sink API;100- patch diff and changed check;101- crash stack and distinctive strings;102- vendor advisories, CVE databases, security bulletins, issue trackers, commits, release notes, mailing lists, conference material, blogs, forums, PoC repositories, and exploit indexes.103104Maintain a novelty ledger:105106| Source/date | Closest public issue | Same component? | Same root cause? | Same trigger? | Same impact? | Distinction |107|---|---|---:|---:|---:|---:|---|108109A known bug can seed a new variant. The candidate remains novel only if the affected instance or invariant failure is materially distinct and not publicly described.110111Stop and reclassify if a matching disclosure appears. Preserve dates and hashes proving when research began, but do not call a public bug a zero-day.112113Completion criterion: closest known issues are documented and the distinction is root-cause based, not cosmetic input variation.114115## Impact and Priority Score116117Score only after hard gates pass.118119| Dimension | 0 | 1 | 2 | 3 |120|---|---|---|---|---|121| Reachability | local/admin | local low-priv | authenticated remote | unauthenticated remote |122| Result | low impact | DoS/disclosure | privilege/sandbox boundary | reliable code execution/host escape |123| Deployment | niche | material | widespread | pervasive/default |124| Enterprise value | consumer-only | mixed | enterprise common | core server/security/infrastructure |125| Interaction | complex user action | normal user action | low interaction | none |126| Reliability | theoretical | unstable | repeatable | deterministic |127128Priority order when scores are close:1291301. unauthenticated server-side RCE;1312. VM or sandbox escape with practical initial foothold;1323. browser or OS remote code execution;1334. security-product RCE/LPE/bypass in enterprise deployments;1345. SCADA/IIoT gateway, engineering workstation, or management-plane RCE;1356. mobile zero-click/one-click chains;1367. high-impact local privilege escalation in pervasive OS components.137138## Exclusion Filter139140Reject or deprioritize:141142- reflected/stored/DOM XSS without an exceptional native or tenant boundary;143- search-order/DLL planting requiring attacker control already equivalent to impact;144- live website bugs rather than shippable product defects;145- ActiveX-only issues;146- beta, nightly, Insider, Canary, developer-preview, or unreleased hardware-only behavior;147- games and consumer-only software unless a widely deployed security/IoT component is actually affected;148- known, publicly posted, duplicate, or trivially rediscovered issues;149- crashes without a proven security boundary;150- unsupported/default-disabled modules with negligible deployment;151- products or classes currently suspended on the ZDI bulletins board (see `zdi-researcher-guidelines`).152153Document the rejection reason so the campaign does not rediscover the same dead end.154155## Campaign Card156157Every active target gets:158159```text160Target/product:161Latest stable proof:162Independent component versions:163Deployment class/evidence:164Attack surface:165Expected boundary:166Preferred impact:167Closest public work:168Novelty distinction:169Exclusion risks:170Research environment:171Next falsifiable experiment:172Revalidation deadline:173Status: ELIGIBLE | UNVERIFIED | REJECTED | PUBLIC174```175176## Revalidation Cadence177178Re-run gates:179180- at campaign start;181- after every vendor update affecting the component;182- before exploit engineering;183- before reporting/submission;184- immediately after a related public disclosure;185- after 30 days of inactivity.186187Automate version checks where possible, but manually confirm package/component versions in the actual test environment.188189## Common Pitfalls1901911. Calling “latest supported” the “latest available” release.1922. Checking OS build but not an independently serviced engine or firmware component.1933. Treating a different crashing input as a novel root cause.1944. Using popularity proxies without deployment evidence.1955. Spending weeks weaponizing before checking exclusions.1966. Letting a stale VM remain the only reproducer.1977. Assuming a beta fix means stable is affected; test stable bytes directly.1988. Searching CVE titles only; public root causes often use different vocabulary.199200## Verification Checklist201202- [ ] Latest stable/GA release proven from authoritative sources203- [ ] All independently updated components recorded204- [ ] Clean latest-stable reproduction completed205- [ ] Deployment classified with evidence206- [ ] Novelty ledger covers closest public work207- [ ] Meaningful security boundary identified208- [ ] Exclusion filter passed209- [ ] Priority score calculated after hard gates210- [ ] Campaign card and revalidation deadline recorded211- [ ] Gate rerun immediately before reporting212