Take potentially dangerous PDFs, office documents, or images and convert them to safe PDFs
Find a file
Alexis Métaireau 31b2d56fd2
Some checks failed
Tests / macOS (arch64) (push) Has been cancelled
Build dev environments / Build dev-env (fedora-40) (push) Has been cancelled
Build dev environments / Build dev-env (debian-bookworm) (push) Has been cancelled
Build dev environments / Build dev-env (debian-bullseye) (push) Has been cancelled
Build dev environments / Build dev-env (debian-trixie) (push) Has been cancelled
Build dev environments / Build dev-env (fedora-39) (push) Has been cancelled
Build dev environments / Build dev-env (fedora-41) (push) Has been cancelled
Build dev environments / Build dev-env (ubuntu-20.04) (push) Has been cancelled
Build dev environments / Build dev-env (ubuntu-22.04) (push) Has been cancelled
Build dev environments / Build dev-env (ubuntu-24.04) (push) Has been cancelled
Build dev environments / Build dev-env (ubuntu-24.10) (push) Has been cancelled
Build dev environments / build-container-image (push) Has been cancelled
Check branch conformity / prevent-fixup-commits (push) Has been cancelled
Tests / run-lint (push) Has been cancelled
Tests / build-container-image (push) Has been cancelled
Tests / Download and cache Tesseract data (push) Has been cancelled
Scan latest app and container / security-scan-container (push) Has been cancelled
Scan latest app and container / security-scan-app (push) Has been cancelled
Tests / windows (push) Has been cancelled
Tests / macOS (x86_64) (push) Has been cancelled
Tests / build-deb (debian bookworm) (push) Has been cancelled
Tests / build-deb (debian bullseye) (push) Has been cancelled
Tests / build-deb (debian trixie) (push) Has been cancelled
Tests / build-deb (ubuntu 20.04) (push) Has been cancelled
Tests / build-deb (ubuntu 22.04) (push) Has been cancelled
Tests / build-deb (ubuntu 24.04) (push) Has been cancelled
Tests / build-deb (ubuntu 24.10) (push) Has been cancelled
Tests / install-deb (debian bookworm) (push) Has been cancelled
Tests / install-deb (debian bullseye) (push) Has been cancelled
Tests / install-deb (debian trixie) (push) Has been cancelled
Tests / install-deb (ubuntu 20.04) (push) Has been cancelled
Tests / install-deb (ubuntu 22.04) (push) Has been cancelled
Tests / install-deb (ubuntu 24.04) (push) Has been cancelled
Tests / install-deb (ubuntu 24.10) (push) Has been cancelled
Tests / build-install-rpm (fedora 39) (push) Has been cancelled
Tests / build-install-rpm (fedora 40) (push) Has been cancelled
Tests / build-install-rpm (fedora 41) (push) Has been cancelled
Tests / run tests (debian bookworm) (push) Has been cancelled
Tests / run tests (debian bullseye) (push) Has been cancelled
Tests / run tests (debian trixie) (push) Has been cancelled
Tests / run tests (fedora 39) (push) Has been cancelled
Tests / run tests (fedora 40) (push) Has been cancelled
Tests / run tests (fedora 41) (push) Has been cancelled
Tests / run tests (ubuntu 20.04) (push) Has been cancelled
Tests / run tests (ubuntu 22.04) (push) Has been cancelled
Tests / run tests (ubuntu 24.04) (push) Has been cancelled
Tests / run tests (ubuntu 24.10) (push) Has been cancelled
build: pin shiboken6 to specific versions
2024-12-24 01:02:34 +01:00
.github build: use the version-less container released-asset for now 2024-10-31 18:27:53 +01:00
assets Update screenshots (hamburger menu + capitalization) 2024-02-20 13:45:38 +00:00
dangerzone Revert "Disable gVisor's DirectFS feature." 2024-10-30 19:10:26 +01:00
debian Bump version to 0.8.1 2024-12-23 23:58:02 +01:00
dev_scripts Update RELEASE.md to upload container.tar.gz for both i686 and arm64 architectures. 2024-10-30 19:11:24 +01:00
docs Always use our own seccomp policy as a default. 2024-10-02 14:12:48 +02:00
install Bump version to 0.8.1 2024-12-23 23:58:02 +01:00
qubes chore: Do not use fstrings without placeholders 2024-06-05 14:19:31 +02:00
share Bump version to 0.8.1 2024-12-23 23:58:02 +01:00
tests tests: Restore previously mocked function 2024-10-30 16:45:45 +01:00
.gitattributes Improve .gitattributes 2024-10-07 12:48:02 +03:00
.gitignore Add script for downloading Tesseract data 2024-10-17 15:50:10 +03:00
.gitmodules Add large test logic and documentation 2023-08-22 16:11:31 +01:00
.grype.yaml Ignore the recent libexpat CVEs 2024-09-10 12:10:44 +02:00
BUILD.md Make PyMuPDF a main Dangerzone dependency 2024-10-17 15:50:11 +03:00
CHANGELOG.md Bump version to 0.8.1 2024-12-23 23:58:02 +01:00
Dockerfile Remove dead code 2024-10-17 15:50:12 +03:00
INSTALL.md Update RELEASE.md to upload container.tar.gz for both i686 and arm64 architectures. 2024-10-30 19:11:24 +01:00
LICENSE Replace MIT license with AGPLv3 2024-01-04 09:57:49 +00:00
Makefile Better way to collect tests 2024-10-17 15:33:58 +03:00
poetry.lock build: pin shiboken6 to specific versions 2024-12-24 01:02:34 +01:00
pyproject.toml build: pin shiboken6 to specific versions 2024-12-24 01:02:34 +01:00
README.md Remove dead docs 2024-10-17 15:50:12 +03:00
RELEASE.md Update RELEASE.md to upload container.tar.gz for both i686 and arm64 architectures. 2024-10-30 19:11:24 +01:00
setup-windows.py Fix: Error with cx_freeze when building the windows executables 2024-10-30 17:41:15 +02:00
setup.py chore(imports): remove useless imports 2024-06-05 14:19:30 +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, in a separate sandbox, Dangerzone takes this pixel data and converts it back into a PDF.

Read more about Dangerzone in the official site.

Getting started

MacOS

You can also install Dangerzone for Mac using Homebrew: brew install --cask dangerzone

Note

: you will also need to install Docker Desktop. This program needs to run alongside Dangerzone at all times, since it is what allows Dangerzone to create the secure environment.

Windows

Note

: you will also need to install Docker Desktop. This program needs to run alongside Dangerzone at all times, since it is what allows Dangerzone to create the secure environment.

Linux

See installing Dangerzone for adding the Linux repositories to your system.

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.