一键导入
triage-dependencies
Mark which of a project's dependency libraries could introduce taint sources or sinks. Use to start attack-surface discovery
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Mark which of a project's dependency libraries could introduce taint sources or sinks. Use to start attack-surface discovery
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Model a library method's taint propagation as a passThrough approximation config. Use for a dropped external method whose propagation is simple copying
Author and verify an OpenTaint detection rule for a vulnerability class on JVM code. Use whenever a rule needs to be created for an uncovered vulnerability, or an existing rule needs a false-positive or false-negative fix
Create an OpenTaint test project with annotated positive/negative samples for verifying a rule or approximation. Use when a rule or approximation needs a test project to check against
Debug a rule or approximation that behaves unexpectedly by tracing where taint is dropped. Use when its samples won't pass after repeated attempts, or it passes tests but is wrong on a real scan
Write an OpenTaint engine-issue report from a confirmed diagnosis, optionally opening a GitHub issue. Use when engine-side issue got confirmed and requires report
Run an end-to-end application-security analysis on a JVM project with OpenTaint — build, scan, model missing library methods, triage, and confirm vulnerabilities. Use when the user asks to find vulnerabilities, run SAST, or scan a Java/Kotlin app for security issues
| name | triage-dependencies |
| description | Mark which of a project's dependency libraries could introduce taint sources or sinks. Use to start attack-surface discovery |
| license | Apache-2.0 |
| metadata | {"author":"opentaint","version":"0.2"} |
Read the project's dependency libraries and mark which ones touch a trust boundary — a place untrusted data can enter (source) or a dangerous operation it can reach (sink) — so depth analysis runs only on the libraries that can matter
From the caller; if omitted, fall back to the default. Ask only when a required input is missing and has no sensible default
<project-root> — the project sources and build files. Default: current directory<model-dir> — the built model; its project.yaml lists every dependency. Default: .opentaint/project<tracking-dir> — where the coverage record is written. Default: .opentaint/trackingRead <model-dir>/project.yaml — the dependencies: list under each javaProjects: entry is every jar on the classpath. Resolve each to the library it is. Most of a large project's jars are transitive infrastructure
For each library decide: could it introduce an attacker-controlled source (e.g. HTTP/RPC request data, message-broker payloads and so on) or a dangerous sink (e.g. query construction, command/file/path ops, deserialization, template/EL, LDAP/JNDI, reflection and so on)?
<project-root> sources for the library's package imports or call sites. If the app never references it and nothing transitive exposes it to untrusted data, dismiss; otherwise flagA library the app references only for safe, constant, or framework-internal use is not a flag — flag where untrusted data plausibly enters or a dangerous call is plausibly reachable
Write <tracking-dir>/coverage.yaml (schema below). One pending entry per flagged library — these are the depth work-list. Record dismissals as a single bulk entry summarising the categories ruled out, not one row per jar; add an individual done row only for a library a reader might expect to be flagged but isn't, with a one-line reason
<tracking-dir>/coverage.yaml — flagged libraries status: pending, dismissals summarised<tracking-dir>/coverage.yaml — one entry per weighed library:
packages:
- package: org.springframework.web.reactive.function # flagged → depth work-list
status: pending # pending | done
notes: WebFlux functional routing — ServerRequest request data (source); WebClient (SSRF sink)
- package: org.springframework.data.r2dbc
status: pending
notes: reactive DB access — check for string-built query sinks
- package: <infrastructure>
status: done # bulk dismissal
notes: >
logging (logback/slf4j), build plugins, annotations, ASM/byte-buddy, test libs,
data structures — no source/sink surface
<project-root> sources