Take potentially dangerous PDFs, office documents, or images and convert them to safe PDFs
Find a file
Alex Pyrgiotis 517d3b58f8
dev_scripts: Map host user UID to container UID 1000
When we run our Dangerzone environments through dev_scripts/env.py, we
use the Podman flag `--userns keep-id`. This option maps the UID in the
host to the *same* UID in the container. This way, the container can
access mounted files from the host.

The reason this works is because the user within the container has UID
1000, and the user in the host *typically* has UID 1000 as well. This
setup can break though if the user outside the host has a different UID.
For instance, the UID of the GitHub actions user that runs our CI
command is 1001.

To fix this, we need to always map the host user UID (whatever that is)
to container UID 1000. We can achieve this with the following mapping:

  1000:0:1         # Map container UID 1000 to subordinate UID 0
                   # (sub UID 0 = owner of the user ns = host user UID)
  0:1:1000         # Map container UIDs 0-999 to subordinate UIDs 1-1000
  1001:1001:64536  # Map container UIDs 1001-65535 to subordinate UIDs 1001-65535

Refs #228
2023-05-25 07:55:19 +03:00
.circleci ci: Fix transient errors in Debian Bullseye 2023-05-24 13:45:56 +03:00
.github/workflows ci: Add security scanning 2023-05-17 20:29:13 +03:00
assets Update README screenshots for 0.4.0 release 2022-12-02 11:26:21 +00:00
container container: Grab trained OCR models from GitHub 2023-05-23 16:27:40 +03:00
dangerzone fix gui typo 2023-05-08 12:53:09 +01:00
dev_scripts dev_scripts: Map host user UID to container UID 1000 2023-05-25 07:55:19 +03:00
install Appease linter 2023-04-24 11:50:58 +03:00
share Remove Kurdish (Arabic) language 2023-05-24 13:43:29 +03:00
tests ci: Add test for OCR languages 2023-05-24 13:43:29 +03:00
.gitignore migrate to pytest & test_docs -> tests/test_docs 2022-09-13 13:07:58 +01:00
.grype.yaml ci: Ignore two CVEs from our security scans 2023-05-17 20:29:13 +03:00
BUILD.md Fix typo 2023-05-17 08:52:34 +01:00
CHANGELOG.md Deprecate Fedora 36 support 2023-05-23 09:22:59 +01:00
INSTALL.md Update changelog for Fedora 38 2023-05-16 16:20:32 +03:00
LICENSE Replace First Look Media references 2023-03-08 18:40:55 +02:00
Makefile Make 'make test' use the Python interpreter 2023-01-25 16:36:31 +00:00
poetry.lock Update Poetry lock file 2023-03-27 15:15:26 +03:00
pyproject.toml Bump version to 0.4.1 2023-04-18 23:01:00 +03:00
README.md Bump version to 0.4.1 2023-04-18 23:01:00 +03:00
RELEASE.md Add support for Fedora 38 in the QA script 2023-05-16 16:20:32 +03:00
setup-windows.py Windows: fix "Open with" dialog showing dz description 2023-01-16 11:38:08 +00:00
setup.py Replace First Look Media references 2023-03-08 18:40:55 +02:00
stdeb.cfg Replace First Look Media references 2023-03-08 18:40:55 +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

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

Some features

  • Sandboxes don't have network access, so if a malicious document can compromise one, it can't phone home
  • 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)
  • Jpeg (.jpg, .jpeg)
  • GIF (.gif)
  • PNG (.png)

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, Windows, and Debian/Ubuntu, and podman for Fedora).

Set up a development environment by following these instructions.