Ein parasitärer Fibonacci-Rechner nistet sich in /usr/bin/top ein

A parasitic Fibonacci computation inside /usr/bin/top

Ein parasitärer Fibonacci-Rechner nistet sich in /usr/bin/top ein

Nicolas Seriot zeigt, dass die Parameter-Expansion von ncurses-terminfo eine vollständige Programmiersprache ist: Mit Registern, Arithmetik und if-then-else lässt sich eine Zwei-Zähler-Minsky-Maschine bauen. Eine Fibonacci-Berechnung wird dabei nicht vom eigenen Programm angetrieben, sondern von den Cursor-Bewegungen, die /usr/bin/top jede Sekunde erzeugt – ein Parasit im Terminal. Sicherheitslücke ist das keine, denn terminfo kann keine Dateien öffnen oder Befehle ausführen.

Die interessante Sicherheitseigenschaft ist die Vertrauensgrenze: Ein vom Benutzer kontrolliertes terminfo-Programm wird von ncurses wiederholt in einem anderen Prozess interpretiert.
  1. muvlon

    Terminfo war nie eine besonders gute Idee, aber heutzutage ist es einfach nur noch lächerlich. Der ursprüngliche Zweck war, Daten über tatsächlich hergestellte physische Terminals zu speichern, und deshalb war es in Ordnung, dass es eine feste DB war (statt das Terminal irgendwie interaktiv nach seinen Fähigkeiten abzufragen).

    Heutzutage sind Terminals jedoch alle Software. Es wäre sehr einfach, sie einfach zu fragen. Stattdessen bestehen wir weiterhin darauf, eine feste terminfo- oder termcaps-DB mitzuliefern. Die Folge ist, dass jeder neue Terminal-Emulator nicht darin enthalten ist, und um ihren Nutzern eine erträgliche Erfahrung zu bieten, lügen sie alle und behaupten, sie seien xterm-256color. Was jeglichen Anreiz völlig beseitigt, sie tatsächlich zu terminfo/termcaps hinzuzufügen.

    Also haben wir dieses höllisch komplexe, nahezu Turing-vollständige Kompatibilitätssystem, das überhaupt keine nützliche Arbeit mehr leistet.

  2. hbcdbff

    Ich erinnere mich, dass ich den ursprünglichen Artikel über die Turing-Vollständigkeit von terminfo, der 2019 veröffentlicht wurde, großartig fand.

    Im Zeitalter der LLMs bringen solche Artikel bei mir nichts mehr.

    Dieser Artikel ist größtenteils, wenn nicht vollständig, von einem LLM generiert. Es ist auf eine etwas weniger offensichtliche Weise gemacht als bei den meisten, aber die Verräter sind da, und pangram stimmt zu.

    Aber selbst wenn der Artikel von einem Menschen geschrieben worden wäre, würde ich ihn jetzt trotzdem nicht mehr beeindruckend finden. Es gibt keine Möglichkeit zu erkennen, dass ein Mensch hinter der Entdeckung steckt.

  3. readthenotes1

    Läuft darauf schon Doom??

Mehr von diesem Tag

2026-10-04