Schwerwiegende Sicherheitsfehler: Buffer Overflows und unsichere String-Operationen #2
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Zusammenfassung
Bei der Analyse des Quellcodes wurden mehrere schwerwiegende Sicherheitsfehler gefunden. Hauptsächlich unsichere String-Operationen ohne Längenprüfung, die zu Buffer Overflows führen können.
KRITISCH
1. Buffer Overflow in
stringReplace()—src/buffer.cZ. 723–758Die Funktion führt
strcat()direkt auf dem Eingabe-String durch, ohne die Puffergröße zu prüfen. Wennreplacelänger alssearchist, wird der Puffer überschrieben.2. Unsafe
strcpyinTOLOG()—src/buffer.cZ. 839–846Ein 30-Byte-Puffer wird per
strcpy()ohne Längenprüfung befüllt.HOCH
3.
strcpy/strcat-Ketten ohne Bounds-Check —src/file.cZ. 101, 225, 312, 4984. Unsichere
sprintf-Aufrufe —src/file.c,src/cvs_cmds.c,src/main.c5.
strncpyohne Null-Terminierung —src/cvs_cmds.cZ. 1306.
strcat-Kette ohne Bounds-Check —src/cvs_cvrt.cZ. 241–2477.
argv[i]ohne Längenprüfung —src/cleaner.cZ. 568. Array-Überlauf in
clean()—src/cleaner.cZ. 108–116Zeiger
cowird in Schleife inkrementiert ohne Grenze des 2048-Byte-Puffersoutzu prüfen.9. Unsafe
strcpyinccpalias()—src/l7cmds.cZ. 145MITTEL
10. Fehlende NULL-Prüfung für
text-Parameter —src/cvs_cvsd.c11.
strchr-Rückgabe nicht geprüft —src/callstr.cZ. 228Empfehlungen
strcpy(dst, src)strncpy+ explizit terminierenstrcat(dst, src)strncatmit Restlängesprintf(buf, ...)snprintf(buf, sizeof(buf), ...)Statische Analyse empfohlen:
cppcheck,clang-analyzerodersplint.Gefundene Fehler: 11 (2 kritisch, 7 hoch, 2 mittel)
Betroffene Dateien:
src/buffer.c,src/file.c,src/cvs_cmds.c,src/cvs_cvrt.c,src/cleaner.c,src/l7cmds.c,src/cvs_cvsd.c,src/callstr.c,src/main.cDie gemeldeten Sicherheitsfehler wurden in PR #3 (Branch
feature/gcc14-support) behoben:stringReplace()(buffer.c:723): strcat-in-Original-Puffer durch memcpy-basierte L�sung ersetzttcppoi(l7.c:239): #ifdef-Guard um L1TCPIP erweitert + NULL-Check hinzugef�gtWeitere Bugfixes aus Issue #1 sind im selben PR enthalten. Wird mit Merge von PR #3 geschlossen.