advisory-mining
Mine GitHub Security Advisories and CVE databases for incomplete fixes, finding variant vulnerabilities in patched code or…
Detect decompression bomb vulnerabilities where compressed input can expand to exhaust memory, targeting buffer-based decompression without size limits.
Claude Code
$ npx -y skills add ByamB4/find-cve-agent --skill decompression-bomb --agent claude-code
Codex
$ npx skills add ByamB4/find-cve-agent --skill decompression-bomb -a codex -y
Cursor
$ npx skills add ByamB4/find-cve-agent --skill decompression-bomb -a cursor -y
Gemini CLI
$ npx skills add ByamB4/find-cve-agent --skill decompression-bomb -a gemini-cli -y
GitHub Copilot
$ npx skills add ByamB4/find-cve-agent --skill decompression-bomb -a github-copilot -y
OpenCode
$ npx skills add ByamB4/find-cve-agent --skill decompression-bomb -a opencode -y
Windsurf
$ npx skills add ByamB4/find-cve-agent --skill decompression-bomb -a windsurf -y
name: decompression-bomb
description: "Detect decompression bomb vulnerabilities where compressed input can expand to exhaust memory, targeting buffer-based decompression without size limits."
metadata:
filePattern:
- "**/*.js"
- "**/*.ts"
- "**/*.py"
- "**/*.go"
bashPattern:
- "grep.*(zlib|gzip|deflate|decompress|inflate|gunzip)"
priority: 78Audit archive/compression libraries, file upload handlers, content-encoding processors, and any package that decompresses user-supplied data.
**Buffer-based decompression is vulnerable**: the entire decompressed output is loaded into memory at once. A 1KB compressed payload can expand to 1GB+.
**Stream-based MAY have backpressure**: but only if the consumer applies it. Many stream implementations still buffer the entire output.
# JavaScript grep -rn "zlib\.gunzip\|zlib\.inflate\|zlib\.unzip\|zlib\.brotli" . grep -rn "gunzipSync\|inflateSync\|unzipSync\|brotliDecompress" . grep -rn "pako\|fflate\|lz-string\|snappy" . grep -rn "decompress\|decompressSync\|uncompress" . # Python grep -rn "zlib\.decompress\|gzip\.decompress\|bz2\.decompress" . grep -rn "lzma\.decompress\|snappy\.decompress" . # Go grep -rn "gzip\.NewReader\|zlib\.NewReader\|flate\.NewReader" . grep -rn "compress/gzip\|compress/zlib\|compress/flate" .
grep -rn "maxSize\|maxOutput\|maxLength\|MAX_SIZE\|outputLimit\|sizeLimit" . grep -rn "ratio\|compressionRatio\|maxRatio" .
Buffer-based (VULNERABLE):
zlib.gunzipSync(input) // Entire output in memory
zlib.gunzip(input, (err, result) => {}) // Callback with full bufferStream-based (CHECK):
input.pipe(zlib.createGunzip()).pipe(output) // Streaming, may have backpressure
Even stream-based can be vulnerable if:
1. Can the attacker supply compressed data? (file upload, HTTP content-encoding, archive processing) 2. Is there an input size limit that would prevent the bomb? 3. Is there a decompressed size limit? 4. Is the process memory-limited?
Open Source CVE Hunting Harness for Claude Code A Claude Code plugin that systematically finds real CVEs in open source packages through coordinated multi-agent security research.
Mine GitHub Security Advisories and CVE databases for incomplete fixes, finding variant vulnerabilities in patched code or…
Detect authentication and authorization bypass vulnerabilities including missing auth middleware, JWT algorithm confusion, IDOR,…
Detect code injection vulnerabilities in packages that dynamically generate or evaluate code via new Function(), eval(), vm.run*,…
Detect OS command injection via shell execution sinks where user-controlled input reaches system commands without proper…
Cross-pollination multiplier technique: find a vulnerability in one package, then search for the same pattern across all similar…
Detect XML/SVG/YAML entity expansion (Billion Laughs) vulnerabilities in parsers that allow unbounded entity definitions.
Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication,…
Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys)…
Clean and finalize authorized natural-language text intended for readers by auditing suspicious invisible Unicode and rewriting…