From appsec
This skill should be used when the user asks to "check for denial of service", "analyze availability risks", "find DoS vulnerabilities", or mentions "denial of service" or "DoS" in a security context. Maps to STRIDE category D.
npx claudepluginhub florianbuetow/claude-code --plugin appsecThis skill uses the workspace's default tool permissions.
Analyze source code for denial of service threats where attackers can disrupt or degrade service availability. Maps to **STRIDE D** -- violations of the **Availability** security property.
Acquire memory dumps from live systems/VMs and analyze with Volatility 3 for processes, networks, DLLs, injections in incident response or malware hunts.
Provides x86-64/ARM disassembly patterns, calling conventions, control flow recognition for static analysis of executables and compiled binaries.
Identifies anti-debugging checks like IsDebuggerPresent, NtQueryInformationProcess in Windows binaries; suggests bypasses via patches/hooks/scripts for malware analysis, CTFs, authorized RE.
Analyze source code for denial of service threats where attackers can disrupt or degrade service availability. Maps to STRIDE D -- violations of the Availability security property.
Read ../../shared/schemas/flags.md for the full flag specification. This skill supports all cross-cutting flags including --scope, --depth, --severity, --format, --fix, --quiet, and --explain.
Read ../../shared/frameworks/stride.md, specifically the D - Denial of Service section, for the threat model backing this analysis. Key concerns: resource exhaustion (CPU, memory, disk, network), algorithmic complexity attacks, application crashes, zip bombs.
Parse flags and resolve the target file list per the flags spec. Filter to files handling external input processing:
For each in-scope file, apply the Analysis Checklist below. At --depth standard, examine resource consumption patterns in each file. At --depth deep, trace input from entry points through processing chains to identify amplification points, unbounded operations, and cascading failure paths.
Output findings per ../../shared/schemas/findings.md using the DOS ID prefix (e.g., DOS-001). Set references.stride to "D" on every finding.
Work through these questions against the scoped code. Each "yes" may produce a finding.
rateLimit, throttle, @rate_limit, or API gateway quotas. Auth endpoints are especially critical -- brute force attacks are both a spoofing and DoS vector.bodyParser.json({ limit: }), absent MAX_CONTENT_LENGTH, file upload handlers without size caps, or missing Content-Length checks. Multipart form handlers that buffer entire uploads into memory are high risk.(a+)+, (a|a)*, (\w+\s*)+, (.*a){x}, or ([a-zA-Z]+)* applied to request data. These cause exponential backtracking. Test suspicious patterns with a ReDoS analyzer.SELECT without LIMIT, pagination without maximum page size, or new Array(req.query.size).unzip, gunzip, decompress, inflate, extractall calls without size monitoring, ratio limits, or file count caps.requests.get without timeout=, fetch without AbortController, database connections without statement_timeout, subprocess.run without timeout.unhandledRejection), or process.exit / os._exit in error paths that kill the entire service.fs.readFileSync, crypto.pbkdf2Sync, large JSON.parse, image processing, or PDF generation on the event loop without worker offloading.finally blocks that release resources).Sync findings on code paths that execute per-request.Concrete code patterns and grep heuristics to surface DoS risks:
express-rate-limit, @throttle, RateLimiter, slowapi, or API gateway throttling config. Grep: route definitions without adjacent rate limiting middleware.(.*)+, (\w+)+, (a|aa)+, ([a-z]+)*, (.+)+$. Search for new RegExp(, re.compile(, /pattern/ applied to user input. Grep: (RegExp|re\.compile|re\.match|re\.search)\s*\(.SELECT * FROM without LIMIT, .find({}) without .limit(), findAll without pagination, aggregation pipelines without $limit. Grep: SELECT \*|\.find\(\s*\{|findAll\(\s*\)|aggregate\(.{ limit: '1mb' } in bodyParser, Django without DATA_UPLOAD_MAX_MEMORY_SIZE, Flask without MAX_CONTENT_LENGTH, Spring without spring.servlet.multipart.max-file-size. Grep: bodyParser|json\(\s*\)|urlencoded\(\s*\) and check for limit configuration.requests.get(url) without timeout, fetch(url) without signal: AbortSignal.timeout(), pg.query without statement_timeout, http.get without timeout. Grep: (requests\.(get|post)|fetch|axios\.(get|post))\s*\( without adjacent timeout.zlib.gunzip, zipfile.extractall, tar.extractall, decompress( without checking decompressed size or file count. Grep: (extractall|gunzip|inflate|decompress)\s*\(.readFileSync, execSync, crypto.*Sync in Express handlers or async Python functions. Grep: Sync\( in route handler files.JSON.parse(untrustedInput) without try/catch, missing process.on('unhandledRejection'), absent global exception handler. Grep: JSON\.parse\( near request data without surrounding try/catch.Each finding must conform to ../../shared/schemas/findings.md.
id: DOS-<NNN>
severity: critical | high | medium | low
confidence: high | medium | low
location: file, line, function, snippet
description: What the DoS vector is and how an attacker can trigger it
impact: How service availability is affected (crash, slowdown, resource exhaustion)
fix: Concrete remediation with diff when possible
references:
stride: "D"
cwe: CWE-400 (Uncontrolled Resource Consumption), CWE-1333 (ReDoS), or relevant CWE
metadata:
tool: dos
framework: stride
category: D
| Severity | Criteria |
|---|---|
critical | ReDoS on unauthenticated endpoints, zip bomb handling without limits, unbounded memory allocation from user input causing OOM |
high | No rate limiting on auth/search endpoints, missing request body size limits, unbounded database queries, missing global crash handler |
medium | Missing timeouts on external calls, synchronous blocking on event loop, GraphQL without depth limits, connection pool exhaustion |
low | Missing pagination max-page-size, single-threaded processing without worker pool, unbounded fan-out on internal low-volume endpoints |
| CWE | Description |
|---|---|
| CWE-400 | Uncontrolled Resource Consumption |
| CWE-1333 | Inefficient Regular Expression Complexity (ReDoS) |
| CWE-770 | Allocation of Resources Without Limits |
| CWE-834 | Excessive Iteration |
| CWE-674 | Uncontrolled Recursion |
| CWE-409 | Improper Handling of Highly Compressed Data |
| CWE-755 | Improper Handling of Exceptional Conditions |