CVE-2022-50778 in Linuxinfo

Zusammenfassung

von VulDB • 03.06.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

fortify: Behebung von __compiletime_strlen() unter UBSAN_BOUNDS_LOCAL

Bei aktiviertem CONFIG_FORTIFY=y und CONFIG_UBSAN_LOCAL_BOUNDS=y tritt während der Ausführung des Tests android.hardware.input.cts.tests aus Android’s Compatibility Test Suite (CTS) ein Runtime-Panic auf. Dies wird durch einen strlen()-Aufruf in hidinput_allocate() verursacht.

__compiletime_strlen() ist basierend auf __builtin_object_size() implementiert und führt anschließend einen Array-Zugriff durch, um die NUL-Terminierung zu überprüfen. Eine Besonderheit von __builtin_object_size() besteht darin, dass für Strings, deren Werte zur Laufzeit abhängig sind, __builtin_object_size(str, 1 oder 0) die maximale Größe möglicher Werte zurückgibt, wenn diese Größen bereits zur Kompilierzeit bestimmbar sind. Beispiel:

static const char *v = "FOO BAR"; static const char *y = "FOO BA"; unsigned long x (int z) {
// Gibt 8 zurück, was entspricht: // max(__builtin_object_size(v, 1), __builtin_object_size(y, 1)) return __builtin_object_size(z ? v : y, 1); }

Wenn FORTIFY_SOURCE aktiviert ist, versucht die aktuelle Implementierung von __compiletime_strlen() zur Laufzeit über das Ende von y hinauszugreifen und verwendet dabei die Größe von v. In Kombination mit UBSAN_LOCAL_BOUNDS führt dies zu einem Fehler (Fault).

hidinput_allocate() verfügt über einen lokalen C-String, dessen Wert vom Kontrollfluss eines switch-Ausdrucks abhängt; daher wird __builtin_object_size(str, 1) auf die maximale String-Länge ausgewertet, was dazu führt, dass alle anderen Fälle bei der Überprüfung des letzten Zeichens fehlschlagen. hidinput_allocate() könnte bereinigt werden, um Runtime-Aufrufe von strlen() zu vermeiden, da die lokale Variable nur Literale enthalten kann; es gibt daher keinen Vorteil darin, den Aufrufort von strlen dort abzusichern (fortify).

Führen Sie eine __builtin_constant_p()-Prüfung gegen Index 0 früher im Makro durch, um den vom Kontrollfluss abhängigen Fall herauszufiltern. Fügen Sie einen KUnit-Test hinzu, um die erwarteten verhaltensbezogenen Eigenschaften von FORTIFY_SOURCE-Interna zu überprüfen.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Zuständig

Linux

Reservieren

24.12.2025

Veröffentlichung

24.12.2025

Moderieren

akzeptiert

Eintrag

VDB-338251

CPE

bereit

EPSS

0.00206

KEV

nein

Aktivitäten

very low

Quellen

Do you need the next level of professionalism?

Upgrade your account now!