advisory-mining
Mine GitHub Security Advisories and CVE databases for incomplete fixes, finding variant vulnerabilities in patched code or similar patterns in related packages.
Detect decompression bomb vulnerabilities where compressed input can expand to exhaust memory, targeting buffer-based decompression without size limits.
$ npx -y skills add ByamB4/find-cve-agent --skill decompression-bomb --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/decompression-bombContext preview
The summary Claude sees to decide when to auto-load this skill.
Detect decompression bomb vulnerabilities where compressed input can expand to exhaust memory, targeting buffer-based decompression without size limits.
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.
Repo: ByamB4/find-cve-agent
Mine GitHub Security Advisories and CVE databases for incomplete fixes, finding variant vulnerabilities in patched code or similar patterns in related packages.
Detect authentication and authorization bypass vulnerabilities including missing auth middleware, JWT algorithm confusion, IDOR, and session fixation.
Detect code injection vulnerabilities in packages that dynamically generate or evaluate code via new Function(), eval(), vm.run*, or template literal…
Detect OS command injection via shell execution sinks where user-controlled input reaches system commands without proper sanitization.
Cross-pollination multiplier technique: find a vulnerability in one package, then search for the same pattern across all similar packages to multiply findings.
Detect XML/SVG/YAML entity expansion (Billion Laughs) vulnerabilities in parsers that allow unbounded entity definitions.