Take potentially dangerous PDFs, office documents, or images and convert them to safe PDFs
Find a file
Alexis Métaireau 8d6e5cb8b8
Provide an is_update_available function
This function does all the needed checks before returning `True`, making it a good external API.

Under the hood, the registry now has an `is_new_remote_image_available`
which is just for checking the presence of a new image, but doesn't do
any verirications on it, and there is also a new `check_signatures_and_logindex` that ensures that these two are valid.
2025-04-22 12:55:44 +02:00
.github Release container is now using the .tar format 2025-04-14 15:08:32 +02:00
.well-known Add reference to funding.json (required by floss.fund application) 2025-03-06 15:54:36 +01:00
assets Update screenshots (hamburger menu + capitalization) 2024-02-20 13:45:38 +00:00
dangerzone Provide an is_update_available function 2025-04-22 12:55:44 +02:00
debian debian: Use abbreviated months in changelog 2025-04-02 11:35:31 +03:00
dev_scripts Add a dangerzone-image CLI script 2025-04-16 13:11:18 +02:00
docs Add documentation for independent container updates 2025-04-22 12:55:42 +02:00
install windows: Minor change to uninstallation message 2025-04-09 14:26:45 +02:00
qubes chore: Do not use fstrings without placeholders 2024-06-05 14:19:31 +02:00
share Bump version to 0.9.0 2025-04-01 10:26:27 +03:00
tests Add signatures tests 2025-04-22 12:55:43 +02:00
.gitattributes Improve .gitattributes 2024-10-07 12:48:02 +03:00
.gitignore Automate a large portion of our release tasks 2024-12-10 15:27:20 +02:00
.gitmodules Add large test logic and documentation 2023-08-22 16:11:31 +01:00
.grype.yaml grype: Ignore CVE-2025-0665 2025-02-10 12:31:08 +02:00
BUILD.md Update reference template for Qubes to Fedora 41 2025-04-08 16:37:28 +03:00
CHANGELOG.md Update reference template for Qubes to Fedora 41 2025-04-08 16:37:28 +03:00
Dockerfile Update the Dangerzone image and its dependencies 2025-04-01 10:33:55 +03:00
Dockerfile.env Update the Dangerzone image and its dependencies 2025-04-01 10:33:55 +03:00
Dockerfile.in Use a fully qualified URI for the debian image 2025-03-31 09:26:25 -07:00
dodo.py Prefer poetry sync to poetry install --sync 2025-04-07 18:22:50 +03:00
INSTALL.md Update reference template for Qubes to Fedora 41 2025-04-08 16:37:28 +03:00
LICENSE Replace MIT license with AGPLv3 2024-01-04 09:57:49 +00:00
Makefile Document the Makefile targets 2025-04-08 16:34:34 +03:00
poetry.lock Bump poetry.lock file 2025-04-01 10:26:26 +03:00
pyproject.toml Add a dangerzone-image CLI script 2025-04-16 13:11:18 +02:00
QA.md Update our release instructions 2024-12-10 11:29:00 +02:00
README.md Point download links to the 0.9.0 release 2025-04-09 17:08:50 +02:00
RELEASE.md Send release notes to editorial during the release process 2025-04-09 20:55:31 +02:00
setup-windows.py Bypass a cx-freeze issue for fitz._wxcolors 2025-04-08 16:34:34 +03:00
setup.py chore(imports): remove useless imports 2024-06-05 14:19:30 +02:00
THIRD_PARTY_NOTICE Copy gVisor public key and a helper script in container helpers 2025-01-23 23:24:48 +02: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 (c) 2022-2024 Freedom of the Press Foundation and Dangerzone contributors Copyright (c) 2020-2021 First Look Media

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 use Podman Desktop?

Yes! We've introduced experimental support for Podman Desktop on Windows and macOS.