Files
magdevandClaude Opus 5.5 47138ddfbe BentoPDF for bau-pm, without third-party hosts (bau-pm BAU-119)
BentoPDF v2.8.8 built from source at its pinned commit with BentoPDF's own
air-gapped build options, every module it would load from a CDN vendored and
checked against vendor.lock, a Content-Security-Policy without a single host,
digital-sign-pdf and timestamp-pdf disabled because both need a third party,
and the hand-off glue on every page: the AGPL source link, the hand-in of a
file from bau-pm through a one-minute cookie into sessionStorage, confirmed by
the tool's reaction, the hand-back of a result from every window, and the
signing tool's flatten switch locked on.

The zero-host gate drives all 117 enabled tool pages in Chromium and fails on
any request to another origin, any CSP violation, a CSP that names a host, and
a disabled id that names no page. Green on this image (3 min 52 s on a private
network), red on the stock upstream image (115 findings) and on a misspelled
id. CI runs it on every push, the release workflow before it pushes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 19:36:02 +02:00

1.8 KiB

Third-party components in the image

The image contains BentoPDF and the modules below, unmodified, at the versions listed; the licences are as each package declares it on npm (read 2026-10-10). The source links are the corresponding source of what the image serves under /wasm/.

Component Version Licence Source
BentoPDF v2.8.8 (f96cd4e5166f3d51393dfe9f3c440b5bb77802f1) AGPL-3.0 (or BentoPDF's commercial licence) https://github.com/alam00000/bentopdf/tree/v2.8.8
PyMuPDF (WASM, @bentopdf/pymupdf-wasm) 0.11.16 AGPL-3.0-only https://github.com/alam00000/bentopdf-pymupdf-wasm; the tarball from BentoPDF's bentopdf-airgap-bundle/ at the commit above
Ghostscript (WASM, @bentopdf/gs-wasm) 0.1.1 AGPL-3.0-only https://github.com/alam00000/bentopdf-gs-wasm; the tarball from BentoPDF's bentopdf-airgap-bundle/ at the commit above
CoherentPDF (coherentpdf) 2.5.5 AGPL-3.0-or-later https://www.npmjs.com/package/coherentpdf/v/2.5.5, https://github.com/coherentgraphics/coherentpdf.js
Tesseract.js (tesseract.js, tesseract.js-core) 7.0.0 Apache-2.0 https://github.com/naptha/tesseract.js, https://github.com/naptha/tesseract.js-core
Tesseract language data (@tesseract.js-data/deu, fra, ita, eng) 1.0.0 (4.0.0_best_int) MIT (as published on npm) https://github.com/naptha/tessdata
Noto Sans (OCR text layer) noto-fonts ffebf8c1ee449e544955a7e813c54f9b73848eac OFL-1.1 https://github.com/googlefonts/noto-fonts
EmbedPDF fonts (@embedpdf/fonts-latin, -arabic, -hebrew) 1.0.0 OFL-1.1 https://github.com/embedpdf/embed-pdf-viewer

The npm tarballs are checked against the integrity hashes in vendor.lock, the Noto Sans file against the SHA-256 in scripts/vendor.sh.