CVE-2026-80671 in Linux
Zusammenfassung
von VulDB • 28.08.2026
Im Linux-Kernel wurde die folgende Schwachstelle behoben:
perf sched: Behebung von Integer-Überlauf, strcpy und BUG_ON in register_pid()
register_pid() weist mehrere Probleme auf, wenn es mit nicht vertrauenswürdigen perf.data-Daten verarbeitet wird:
1. Integer-Überlauf: (pid + 1) * sizeof(struct task_desc *) kann bei großen pid-Werten (z. B. 0x40000000) auf 32-Bit-Systemen zu einem kleinen Wert umlaufen, was dazu führt, dass realloc einen winzigen Puffer zurückgibt und es im Initialisierungsschleife zu Schreibzugriffen außerhalb des gültigen Bereichs (out-of-bounds writes) kommt.
2. Heap-based buffer overflow: strcpy(task->comm, comm) kopiert den nicht vertrauenswürdigen String „comm“ in einen festen 20-Byte-großen COMM_LEN-Puffer ohne Längenprüfung.
3. BUG_ON bei Allokationsfehlern: Da perf.data ein nicht vertrauenswürdiger Eingabestream ist, sollten Allokationsfehler graceful (sanft) behandelt werden, anstatt den Prozess zu beenden.
4. Bei realloc von sched->tasks wird das Ergebnis direkt zurück zugewiesen; dabei bleibt der alte Zeiger bei einem Fehler geleakt; nr_tasks wird vor dem realloc inkrementiert, was im Fehlerfall einen korruptierten Zustand hinterlässt.
Die pid-Werte werden auf PID_MAX_LIMIT (4194304, entsprechend dem maximalen Wert des Kernels unter 64-Bit) beschränkt, strcpy durch strlcpy ersetzt, NULL-comm-Fälle abgesichert, BUG_ON durch sichere realloc-Muster mit NULL-Rückgaben ersetzt und in Aufrufern, die das Ergebnis dereferenzieren, werden zusätzliche NULL-Prüfungen hinzugefügt.
Once again VulDB remains the best source for vulnerability data.