Take potentially dangerous PDFs, office documents, or images and convert them to a safe PDF
Find a file
Alexis M 428cf6e370
Split out the container image
This comes with the following changes:

- build-push-image doesn't fill the cache anymore
- The debian image uses the version of H2Orestart packaged by debian,
  removing the need to use mazette and uv to package it.
- Do not upload SARIF files to github, as we are not using their
  security dashboard anymore.
- The docs to pixels "conversion" code now lives in this external
  repository, and can be installed separately, for cases (like Qubes)
  where it makes sense to avoid using a container image.
- There is a new "dangerzone-insecure-conversion" PyPI package, which
  contains the "dangerzone.conversion" module, and so dangerzone code
  now depends on it.
2026-03-05 19:44:27 +01:00
.github Split out the container image 2026-03-05 19:44:27 +01:00
.well-known Add reference to funding.json (required by floss.fund application) 2025-03-06 15:54:36 +01:00
assets assets: Accurately depict our status bar in the design system 2025-10-23 14:55:25 +02:00
dangerzone Split out the container image 2026-03-05 19:44:27 +01:00
dangerzone-image Split out the container image 2026-03-05 19:44:27 +01:00
debian Exclude dangerzone-machine from Linux packages 2026-01-26 18:25:21 +02:00
dev_scripts Split out the container image 2026-03-05 19:44:27 +01:00
docs Split out the container image 2026-03-05 19:44:27 +01:00
install Split out the container image 2026-03-05 19:44:27 +01:00
qubes chore: Do not use fstrings without placeholders 2024-06-05 14:19:31 +02:00
share Remove status-bar vertical bars 2025-11-17 12:51:33 +01:00
tests Add tests for the new conversion button 2026-02-16 17:12:30 +01:00
.gitattributes docs: Add documentation and cleanup 2025-10-23 14:55:08 +02:00
.gitignore Split out the container image 2026-03-05 19:44:27 +01:00
.gitmodules Add large test logic and documentation 2023-08-22 16:11:31 +01:00
BUILD.md Update the documentation regarding ICU 2025-11-14 16:25:33 +01:00
CHANGELOG.md Add the ability to convert new documents 2026-02-16 17:12:30 +01:00
dodo.py Make container.tar optional 2026-01-20 14:59:27 +01:00
INSTALL.md Update INSTALL.md with Windows on Arm note 2025-12-17 14:47:41 +01:00
LICENSE Replace MIT license with AGPLv3 2024-01-04 09:57:49 +00:00
Makefile Move MyPy flags to pyproject.toml 2025-10-23 14:55:18 +02:00
mazette.lock Track H2Orestart dependency via Mazette 2025-11-19 17:10:07 +02:00
poetry.lock Do not install cx-freeze 8.5.0 2025-11-24 21:05:27 +02:00
pyproject.toml Split out the container image 2026-03-05 19:44:27 +01:00
README.md Christmas Season Is Over 2026-02-05 17:25:00 +02:00
setup-windows.py Include dangerzone-image and dangerzone-cli in packages 2025-10-23 14:55:20 +02:00
setup.py windows: Add a module for the ShellExecuteEx Win32 API 2025-11-18 09:58:12 +02:00
THIRD_PARTY_NOTICE.md Split out the container image 2026-03-05 19:44:27 +01:00

Dangerzone

Take potentially dangerous PDFs, office documents, or images and convert them to a safe PDF.

Settings Converting

Dangerzone works like this: You give it a document that you don't know if you can trust (for example, an email attachment). Inside of a sandbox, Dangerzone converts the document to a PDF (if it isn't already one), and then converts the PDF into raw pixel data: a huge list of RGB color values for each page. Then, outside of the sandbox, Dangerzone takes this pixel data and converts it back into a PDF.

Read more about Dangerzone in the official site.

Getting started

Follow the instructions for each platform:

You can read more about our operating system support here.

Some features

  • Sandboxes don't have network access, so if a malicious document can compromise one, it can't phone home
  • Sandboxes use gVisor, an application kernel written in Go, that implements a substantial portion of the Linux system call interface.
  • Dangerzone can optionally OCR the safe PDFs it creates, so it will have a text layer again
  • Dangerzone compresses the safe PDF to reduce file size
  • After converting, Dangerzone lets you open the safe PDF in the PDF viewer of your choice, which allows you to open PDFs and office docs in Dangerzone by default so you never accidentally open a dangerous document

Dangerzone can convert these types of document into safe PDFs:

  • PDF (.pdf)
  • Microsoft Word (.docx, .doc)
  • Microsoft Excel (.xlsx, .xls)
  • Microsoft PowerPoint (.pptx, .ppt)
  • ODF Text (.odt)
  • ODF Spreadsheet (.ods)
  • ODF Presentation (.odp)
  • ODF Graphics (.odg)
  • Hancom HWP (Hangul Word Processor) (.hwp, .hwpx)
  • EPUB (.epub)
  • Jpeg (.jpg, .jpeg)
  • GIF (.gif)
  • PNG (.png)
  • SVG (.svg)
  • other image formats (.bmp, .pnm, .pbm, .ppm)

Dangerzone was inspired by Qubes trusted PDF, but it works in non-Qubes operating systems. It uses containers as sandboxes instead of virtual machines (using Docker for macOS and Windows, and podman on Linux).

Set up a development environment by following these instructions.

License and Copyright

Licensed under the AGPLv3: https://opensource.org/licenses/agpl-3.0

Copyright © 20222024 Freedom of the Press Foundation and Dangerzone contributors
Copyright © 20202021 First Look Media

See also THIRD_PARTY_NOTICE.md for more information regarding the third-party software that Dangerzone depends on.

See also

FAQ

Has Dangerzone received a security audit?

Yes, Dangerzone received its first security audit by Include Security in December 2023. The audit was generally favorable, as it didn't identify any high-risk findings, except for 3 low-risk and 7 informational findings.

"I'm experiencing an issue while using Dangerzone."

Dangerzone gets updates to improve its features and to fix problems. So, updating may be the simplest path to resolving the issue which brought you here. Here is how to update:

  1. Check which version of Dangerzone you are currently using: run Dangerzone, then look for a series of numbers to the right of the logo within the app. The format of the numbers will look similar to 0.4.1
  2. Now find the latest available version of Dangerzone: go to the download page. Look for the version number displayed. The number will be using the same format as in Step 1.
  3. Is the version on the Dangerzone download page higher than the version of your installed app? Go ahead and update.

Can I run Dangerzone in an airgapped environment?

Yes, Dangerzone is designed to run in airgapped environments without any configuration. If you want to update its container image, follow our instructions.

Can I use a custom runtime, such as Podman Desktop?

On Windows and macOS, Dangerzone embeds Podman, so there is no need to.

To use a different podman version, such as Podman Desktop, follow our documentation.