Cybersecurity: Linux in PDF eingebettet

Das finde ich krass. Da kann man offensichtlich in einem PDF ein ganzes Betriebssystem zum Laufen bringen, in dem Fall Linux. Was geht dann noch alles so versteckt in PDFs?

https://hackingpassion.com/linux-inside-pdf/

 

Ja, das ist wirklich beeindruckend krass – und gleichzeitig ein bisschen verrückt. 😄

Der Trick mit Linux inside a PDF (genauer gesagt das Projekt „LinuxPDF“ von Allen Ding, 2025) funktioniert so:

  • Es wird ein kleiner RISC-V-Emulator (basierend auf TinyEMU von Fabrice Bellard) genommen.
  • Dieser Emulator wird mit einer alten Emscripten-Version (2019) zu asm.js kompiliert (kein WebAssembly, weil der PDF-JavaScript-Interpreter in modernen Browsern das nicht mehr richtig unterstützt).
  • Das asm.js wird direkt in den PDF eingebettet → PDF-JavaScript-Objekte.
  • Der Linux-Kernel (sehr minimalistisch) bootet dann emuliert im Browser.
  • Die Ausgabe erfolgt als ASCII-Art: Jede „Zeile“ des Terminals ist ein separates Textfeld im PDF.
  • Tastatureingabe läuft über PDF-Formularfelder oder Buttons.

Das Ganze läuft nur in Chromium-basierten Browsern (Chrome, Edge, Brave), braucht 30–60 Sekunden zum Booten, ist ~100× langsamer als echtes Linux (Chrome deaktiviert JIT im PDF-JS-Sandbox aus Sicherheitsgründen) und ist ca. 6 MB groß. In Adobe Reader, Firefox & Co. startet es gar nicht.

Das zeigt aber vor allem: PDF ist viel mächtiger (und gefährlicher), als die meisten denken.

Was man sonst noch so „versteckt“ in PDFs unterbringen oder ausführen kann (real existierende Beispiele, sortiert nach Harmlosigkeit → böse):

Harmlose / coole Demos (meist JavaScript-basiert):

  • Voll spielbares Doom (DoomPDF, gleicher Autor wie LinuxPDF)
  • Tetris (PDFTris, Januar 2025)
  • 3D-Modelle drehen und animieren
  • Kleine Rechen- oder Physik-Simulationen
  • „Easter Eggs“, die bei bestimmten Uhrzeiten / Tastenkombinationen etwas anzeigen

Potenziell nützliche / grenzwertige Sachen:

  • PDFs, die per JavaScript HTTP-Requests machen (z. B. Formulardaten heimlich wegschicken)
  • PDFs, die erkennen, welchen Monitor / welche Auflösung du hast
  • PDFs, die mit dem Dateisystem interagieren (wenn der Reader sehr alte Schwachstellen hat)

Richtig gefährliche / missbräuchliche Möglichkeiten (bekannte Techniken):

  • Embedded JavaScript-Exploits → Nutzen von Viewer-Schwachstellen (z. B. CVE-2024-4367 in PDF.js → Firefox + Electron-Apps → nativer Code)
  • Polyglot-Dateien (Datei ist gleichzeitig PDF + ZIP / RAR / PHP / EXE / Shell-Skript): Wird als harmloses PDF hochgeladen / geöffnet, aber als anderes Format ausgeführt / extrahiert
    • Beispiel: PDF + PHP → Webserver führt PHP-Code aus, wenn er die Datei trotzdem ausführt
    • PDF + ZIP → Malware versteckt drin, die bei Entpacken losläuft
  • Malicious Payloads in Streams (verschlüsselt / obfuskiert), die bei bestimmten Reader-Versionen ausbrechen
  • Dokument-übergreifende Angriffe (PDF lädt externe Ressourcen nach, die dann weiter exploit)

Kurz gesagt: PDFs können quasi ein Mini-Betriebssystem (oder zumindest einen Emulator davon) hosten, solange der Viewer JavaScript ausführt – und fast jeder große PDF-Viewer tut das heutzutage in irgendeiner Form.

Deshalb raten viele Sicherheitsleute inzwischen:

  • PDFs aus dem Internet nie mit aktiviertem JavaScript öffnen
  • In Chrome/Edge: chrome://flags/#pdfjs.enable-javascript auf Disabled setzen (falls du paranoid bist)
  • Oder gleich einen Viewer ohne JS nutzen (z. B. SumatraPDF, mutool, pdfcpu)

 

Was ist safe? Zum Beispiel MacOS Preview

 

Ja, macOS Preview gilt in Bezug auf die größten und häufigsten PDF-Gefahren als deutlich sicherer als die meisten anderen gängigen PDF-Viewer (Adobe Reader, Browser-PDF-Viewer, Foxit etc.).

Der wichtigste Grund: Preview unterstützt kein JavaScript in PDFs – und das schon seit vielen Jahren (seit der Einführung von PDFKit durch Apple, nie implementiert aus Sicherheitsgründen).

Das bedeutet konkret:

Gefahr durch PDFs macOS Preview (aktuell 2025/2026) Adobe Acrobat/Reader Chrome/Edge PDF-Viewer SumatraPDF / mutool
Embedded JavaScript ausführen (z. B. Linux-in-PDF, Doom-in-PDF, Form-Exploits) Nein – wird komplett ignoriert Ja (kann deaktiviert werden) Ja (sandboxed, aber möglich) Nein
JS-basierte RCE-Exploits / Memory-Corruption Sehr unwahrscheinlich Häufige CVEs Möglich (aber sandbox) Sehr unwahrscheinlich
Automatische HTTP-Requests / Daten exfiltrieren Nein Möglich Möglich (eingeschränkt) Nein
Embedded Links / Phishing-Umleitung Ja (kannst du anklicken) Ja Ja Ja
Parser-Bugs / Buffer-Overflows (nicht JS) Möglich, aber sehr selten Häufig Selten Sehr selten
Polyglot-Dateien (PDF + EXE/ZIP/PHP) Risiko beim Öffnen als anderes Format Höheres Risiko Niedrig Niedrig

Zusammengefasst:

  • Gegen die coolen, aber gefährlichen JS-Demos (wie Linux inside PDF, Tetris, Doom usw.) bist du mit Preview komplett immun – das startet einfach nicht.
  • Gegen klassische JS-Exploits, die in den letzten Jahren viele CVEs in Adobe und Browsern ausgelöst haben → sehr sicher.
  • Es gibt immer noch Restrisiken:
    • Du klickst auf einen bösartigen Link im PDF → Phishing / Malware-Download
    • Extrem seltene Parser-Schwachstellen in Apples PDFKit (die letzten bekannten relevanten CVEs lagen Jahre zurück und wurden schnell gepatcht)
    • Gatekeeper-Quarantäne-Warnungen bei Downloads ignorieren und trotzdem öffnen

Aktueller Stand (Stand 2026): Es gibt keine bekannten aktiven Exploits oder CVEs, die speziell macOS Preview / PDFKit per JavaScript oder ähnlichem ausnutzen würden. Die meisten PDF-Malware-Kampagnen zielen auf Windows + Adobe oder Browser ab.

Empfehlung für maximale Paranoia (wenn du oft dubiose PDFs bekommst):

  1. Bleib bei Preview – es ist die sicherste Default-Option auf macOS.
  2. Deaktiviere das automatische Öffnen in Safari/Chrome (nutze stattdessen „Mit Vorschau öffnen“).
  3. Bei richtig kritischen/sensiblen PDFs: Öffne sie in einer Sandbox / VM oder mit mutool show / pdfcpu ( Kommandozeile, kein JS, minimaler Parser).
  4. Gatekeeper und XProtect nie deaktivieren – die fangen viele bösartige Downloads schon vorher ab.

Kurz: Ja – Preview ist relativ safe, vor allem im Vergleich zu allem, was JavaScript ausführt. Für den Alltag auf dem Mac ist es eine der besten Entscheidungen, einfach Preview zu nutzen.

christophvongamm

View posts by christophvongamm
Dr. Christoph von Gamm ist ein Unternehmer, Investor und Business Angel, der sich an der Schnittstelle von Wirtschaft, Kultur und Technologie engagiert. Er ist CEO und Managing Partner von Cybertrue Capital Partners, einer Firma, die sich mit Investitionen und Deals beschäftigt. Zudem ist er CEO von vonGammCom Global, wo er Beratungs- und Executive-Search-Dienstleistungen im Bereich IT-Outsourcing, große Verträge, Vertriebsführung und umfassende Transformationen anbietet. Seine berufliche Laufbahn umfasst über 20 Jahre globale und pan-europäische Erfahrung, darunter Führungspositionen bei Capgemini Suisse S.A. (2008–2012) und IBM Corporation (1995–2008). Er hat sich als strategisch denkender Führungskraft mit Erfolg bei der Performanceverbesserung großer Organisationen, der Gründung neuer Funktionen und der Pionierarbeit bei globalen Outsourcing-Initiativen etabliert. Sein Schwerpunkt liegt auf der Wertsteigerung durch digitale Transformation und der Nutzung dieser Veränderungen für seine Kunden. Er verfügt über akademische Qualifikationen, darunter einen Doktortitel (Dr. phil.) in interkultureller Wirtschaftswissenschaft von der Europa-Universität Viadrina Frankfurt (Oder), einen Diplom-Ingenieur (Dipl.-Ing.) in Elektrotechnik und Informationstechnik von der TU München sowie ein MBA von der Open University Business School, einen Master of Sales Management von der Portsmouth University, sowie Absolvent des Client Executive Programs der INSEAD Fontainebleau.
Scroll to top