Skip to content

Security: codermannn/scriptorium

Security

SECURITY.md

Security Policy

Supported versions

This project is pre-1.0 and only the main branch receives fixes. There are no maintained release branches.

Reporting a vulnerability

Please do not open a public issue for a security report.

Use GitHub's private vulnerability reporting: go to the Security tab → Report a vulnerability. That opens a private advisory visible only to the maintainers, and it is the only supported channel.

Include what you have — the affected version or commit, what an attacker can do, and a reproduction if you have one. A report without a working exploit is still worth sending.

Expect an acknowledgement within a week. Fixes go to main first; if a release is affected, the advisory is published alongside it.

Scope

scriptorium runs locally over files you supply. The parts worth attention:

  • Untrusted PDFs. The pipeline shells out to pdftoppm, pdftotext and pdfinfo (poppler), tesseract, and parses PDFs with pikepdf. A malicious document is handled by those dependencies, so a parser vulnerability is theirs to fix — report it upstream, and here if this project's use of them makes it reachable when it otherwise would not be.
  • Configuration is code-adjacent. documents/*.yaml supplies regular expressions that run against document text. A config from an untrusted source can cause catastrophic backtracking. Treat configs the way you would treat a script.
  • Nothing in this project talks to a network. Level 2 must make no network call at all — tests/test_levels.py enforces that by breaking socket, so a regression there is a bug worth reporting.

Out of scope: OCR inaccuracy. Wrong text is a correctness issue, tracked in public issues, and the whole design assumes engines make mistakes.

There aren't any published security advisories