WCAG 2.2 AA compliance, ARIA patterns, keyboard navigation, screen reader optimization
中文简介正在准备中。当前显示原文说明。
Find similar vulnerabilities across a codebase after discovering one instance. Uses pattern matching, AST search, Semgrep/CodeQL queries, and manual tracing to propagate findings. Adapted from Trail of Bits. Use after finding a bug to check if the same pattern exists elsewhere.
中文简介正在准备中。当前显示原文说明。
查看安装方法安装前可以查看交给 AI 代理的指令内容。
When you find a bug, the same mistake almost certainly exists elsewhere. Variant analysis systematically hunts for siblings of a known vulnerability.
Before searching, understand what makes this bug a bug:
ORIGINAL BUG:
File: src/api/users.ts:42
Type: Missing input validation
Pattern: req.params.id used directly in DB query without sanitization
Root cause: Developer assumed framework sanitizes params
Trigger: Untrusted input reaches database query
Extract the abstract pattern -- not the specific code, but the class of mistake:
For each bug class, create multiple search strategies:
# Example: SQL injection via concatenation
rg "query\(.*\+.*\)" --type ts
rg "execute\(.*\$\{" --type ts
rg "\.raw\(.*\+" --type ts
# Example: Missing auth middleware
rg "router\.(get|post|put|delete)\(" --type ts -l | \
xargs rg -L "authenticate|authorize|requireAuth"
# Example: Hardcoded secrets
rg "(password|secret|key|token)\s*[=:]\s*['\"][^'\"]{8,}" --type ts
# Example: SQL injection
rules:
- id: sql-injection-concatenation
patterns:
- pattern: $DB.query($X + ...)
- pattern-not: $DB.query($X, [...])
message: "Potential SQL injection via string concatenation"
severity: ERROR
# Example: Missing null check before use
rules:
- id: null-deref-after-find
patterns:
- pattern: |
const $X = await $DB.findOne(...)
...
$X.$PROP
- pattern-not: |
const $X = await $DB.findOne(...)
...
if ($X) { ... }
message: "Using findOne result without null check"
severity: WARNING
// Example: Tainted data reaching SQL
import javascript
from CallExpr call, DataFlow::Node source, DataFlow::Node sink
where
source = DataFlow::parameterNode(any(Function f).getAParameter()) and
sink = call.getArgument(0) and
call.getCalleeName() = "query" and
DataFlow::localFlow(source, sink)
select sink, "Untrusted input flows to SQL query"
For each match:
| Status | Meaning | Action |
|---|---|---|
| CONFIRMED | Same bug pattern, exploitable | File as finding |
| LIKELY | Same pattern, needs deeper analysis | Investigate further |
| MITIGATED | Pattern present but other controls prevent exploitation | Document as defense-in-depth gap |
| FALSE POSITIVE | Pattern matches but context makes it safe | Document why it's safe |
## Variant Analysis Report
**Original Finding**: [reference to original bug]
**Pattern**: [abstract description of the vulnerability class]
**Search Method**: [grep/semgrep/codeql/manual]
### Confirmed Variants
1. **[SEVERITY]** file.ts:42 -- [description]
2. **[SEVERITY]** other.ts:88 -- [description]
### Likely Variants (Need Investigation)
3. file2.ts:15 -- [why it might be vulnerable]
### Mitigated Instances
4. safe.ts:30 -- Same pattern but [mitigation] prevents exploitation
### Statistics
- Files scanned: X
- Matches found: Y
- Confirmed: Z
- False positives: W
If one endpoint lacks validation, check ALL endpoints:
# Find all route handlers
rg "router\.(get|post|put|delete|patch)\(" --type ts -n
# Check each for validation middleware
# Missing validation = variant
If one route lacks auth, check all routes:
# Find routes without auth middleware
rg "app\.(get|post)\(['\"]" --type ts | grep -v "auth\|protect\|require"
If one catch block leaks info, check all catch blocks:
rg "catch.*\{" -A 3 --type ts | grep -E "res\.(send|json).*err"
If one place uses weak crypto, check all crypto usage:
rg "createHash\(|createCipher\(|randomBytes\(" --type ts
rg "MD5\|SHA1\|DES\|RC4" --type ts
If one TOCTOU exists, check similar check-then-act patterns:
rg "if.*await.*find" -A 5 --type ts | grep -E "await.*(update|delete|create)"
After fixing a bug, coroner should:
During review, if a finding is discovered:
When a fix is reviewed:
| Rationalization | Why It's Wrong | Required Action |
|---|---|---|
| "It's just one instance" | Bugs travel in packs | Run variant analysis |
| "The other code is different" | Same pattern, different syntax | Abstract the pattern |
| "We already fixed this area" | Fix might be incomplete | Verify with search |
| "Semgrep didn't find anything" | Rules might be too specific | Try multiple search methods |
| "It's too many results" | Volume doesn't mean false positive | Triage each result |
Inspired by Trail of Bits variant-analysis plugin.
还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
WCAG 2.2 AA compliance, ARIA patterns, keyboard navigation, screen reader optimization
中文简介正在准备中。当前显示原文说明。
axe-core integration, WCAG 2.2 AA checklist, keyboard navigation testing, screen reader testing, and ARIA pattern validation.
中文简介正在准备中。当前显示原文说明。
Steam-style achievement system with XP, levels, streaks, and skill trees. Gamifies the development workflow. 25 achievements across 5 categories.
中文简介正在准备中。当前显示原文说明。
Framework for measuring and tracking agent response quality over time. Detects regressions before they reach production. Use when evaluating agent changes, auditing quality, or establishing performance baselines.
中文简介正在准备中。当前显示原文说明。
Agent Context Isolation
中文简介正在准备中。当前显示原文说明。
Agent ve skill dosyalarinin yapisal dogrulamasi. Frontmatter kontrol, naming convention, zorunlu bolum kontrolu, tutarlilik denetimi. Yeni agent/skill eklendiginde veya mevcut dosyalar duzenlediginde otomatik calistirilir.
中文简介正在准备中。当前显示原文说明。