Rostrum is pre-1.0; only the latest release receives fixes.
Please do not open a public issue for security problems. Use GitHub's private vulnerability reporting on this repository. You should receive an acknowledgment within a week.
- Rostrum parses untrusted
.pptxfiles: zip container, DEFLATE stream, and XML are all hand-written here, so malformed-input crashes, hangs (decompression bombs, entity expansion), and memory-safety issues inSources/Rostrum/Zip,XML, andOPCare in scope and taken seriously. The fuzz suite (FuzzTests) is the first line of defense — reproduction cases are welcome in reports. - Reads are budgeted by default:
Presentation(data:limits:)andOPCPackage.readapplyZipReader.Limits.default(4 GiB of declared uncompressed bytes) before anything is decompressed, and document type declarations are rejected outright. For hostile input, pass a tighter budget —Tools/pptx-tooluses 1 GiB — rather than.unlimited. - The Lectern sample app sends prompts to the LLM provider you configure and stores API keys in the system Keychain only. A path that writes a key anywhere else (defaults, logs, network other than the key's own provider) is a security bug.