This library parses binary XLSB files — a privileged attack surface for untrusted inputs (file uploads, server-side ingestion, browser tabs). We take parser bugs that can crash, hang, or exhaust memory seriously.
Do NOT file a public GitHub issue for security vulnerabilities.
Instead, email the maintainers at security@example.com with:
- A description of the issue
- A minimal reproducer (an
.xlsbfile or a synthetic byte sequence) - The xlsb-parser version affected
- The runtime (Node version / browser) where you observed the issue
We will acknowledge receipt within 72 hours and aim to publish a fix within 30 days for high-severity issues.
- Zip bombs:
fflate'sunzipSyncwill decompress the entire ZIP into memory. Use themaxZipBytesoption to cap the decompressed size and refuse oversized inputs before they OOM your process. - No streaming unzip: the entire
.xlsbpart is held in memory between phases. The streamingopenXlsb()API only streams rows; the ZIP step itself is still buffered. A future release may replacefflatewith a streaming zip reader. - Heuristic pivot-cache decoder: when
parsePivotCaches: true, the decoder uses byte-level type detection which can mis-parse field boundaries on non-trivial caches. ThefieldNameslist is trustworthy;rowsshould be treated as approximations.