Credential and config stores
The remaining eight formats are a different class of bait. Instead of beaconing when a viewer renders them, they carry the trigger URL in the slot a real file of that kind would — and fire when someone (or a tool they point at it) uses that URL. These are the files an intruder who already has a shell goes looking for, and the ones infostealer and forensic tooling greps by name, so a bait URL in one is found by exactly the person you want to catch. Every embedded secret is a documented example value (AWS’s ownAKIAIOSFODNN7EXAMPLE, Stripe’s published
test key) or generated nonsense, so nothing here is a live credential anywhere.
Because the filename is the disguise, most of these keep the name the real thing
has rather than taking the memo — a cookie jar named payroll-laptop.txt is not a
cookie jar.
See self-hosted apps for per-app recipes (Immich, Paperless, Joplin, Vaultwarden, dashboards, code hosts, etc.).
- ✅ Microsoft Office desktop apps — fetch external image on render (subject to Protected View for files marked “from internet”; first “Enable Editing” click triggers).
- ✅ LibreOffice (Writer/Calc/Impress) — fetches external content by default.
- ⚠ Office on the web / Office 365 in browser — depends on tenant policy.
- ❌ macOS Quick Look — does not render external content.
- ✅ Adobe Acrobat Reader — follows
/OpenAction → /URI(may show a one-time trust prompt for the host). - ✅ Foxit Reader, PDF-XChange — typically follows OpenAction.
- ⚠ Chrome, Edge, Firefox built-in viewers — OpenAction not honored; mantis fires only if user clicks the visible “View the latest version online” link.
- ❌ macOS Preview — OpenAction not honored; click-the-link fallback works.
.docx, .xlsx, .pptx,
.pdf, .html, .md, .eml, .rtf) fall back to a built-in multi-paragraph
internal-memo body that opens CONFIDENTIAL — INTERNAL DISTRIBUTION ONLY. It
deliberately reads as a genuine document — an earlier default that described
itself as placeholder text gave the canary away to the first person who opened
it — so editing the file to look authentic afterwards is optional polish, not a
required step. The credential/config stores carry their own fixed content and use
neither the body nor the memo — except bookmarks, where the memo becomes the
visible name of the bait bookmark, so give that key a memo that reads like a real
bookmark rather than one that names it as a canary. The .svg / .ics / .vcf / NFC / Wallet formats
have no multi-paragraph document body to fall back on either — instead they
surface the key memo/title in their title, summary, name, or pass field, and
.ics / .vcf route any body you do supply into the event DESCRIPTION /
contact NOTE (falling back to that same title when you give none).
The key memo and title flow into these artifacts (document properties, calendar/contact fields), so Mantis sanitizes them on generation: control bytes illegal in XML 1.0 are stripped from the Office / SVG / HTML formats, and a lone carriage return is normalized in the line-oriented .ics / .vcf formats — both so a memo carrying stray control characters can’t produce a file that silently fails to open or that injects a forged property line.
Apple Wallet artifacts require an Apple Developer Pass Type ID certificate. Set
the APPLE_PASS_* env vars on the server (see
Configuration); admins can check the current
state at /settings/wallet. If Wallet is not configured, format=apple-wallet
returns 503 not_configured.