CWE-Referenz › CWE-404: Improper Resource Shutdown or Release
CWE-404: Improper Resource Shutdown or Release
CWE ID: 404
Name: Improper Resource Shutdown or Release
Beschreibung
Das Produkt gibt Ressourcen nicht frei oder gibt diese fehlerhaft frei, bevor sie für die Wiederverwendung verfügbar gemacht werden.
Erweiterte Beschreibung
Bei der Erstellung oder Zuweisung einer Ressource ist der Entwickler dafür verantwortlich, diese ordnungsgemäß freizugeben und alle potenziellen Pfade der Ablauf- oder Invalidierung zu berücksichtigen, beispielsweise eine festgelegte Zeitspanne oder eine Revocation.
Risikominderungsmaßnahmen
Maßnahme (Implementation)
Effektivität: Unknown
Beschreibung: Es ist bewährte Praxis, die Verantwortung für die Freigabe aller allokierten Ressourcen zu übernehmen und eine konsistente Vorgehensweise bei der Speicherfreigabe innerhalb einer Funktion sicherzustellen. Wenn Speicher allokiert wird, der bei Funktionsende freigegeben werden soll, muss sichergestellt werden, dass dieser Speicher an allen Exit Points der Funktion freigegeben wird, einschließlich Fehlerbedingungen.
Maßnahme (Implementation)
Effektivität: Unknown
Beschreibung: Speicher sollte mit passenden Funktionen wie malloc/free, new/delete und new[]/delete[] allokiert und freigegeben werden.
Maßnahme (Implementation)
Effektivität: Unknown
Beschreibung: Bei der Freigabe eines komplexen Objekts oder einer Struktur ist sicherzustellen, dass alle Member-Komponenten ordnungsgemäß entsorgt werden, und nicht nur das Objekt selbst. Dies beinhaltet die korrekte Handhabung von Ressourcen und die Vermeidung von Memory Leaks.
Verwandte Schwachstellen
Ist Ihre IT-Infrastruktur betroffen?
Schwachstellen wie CWE-404: Improper Resource Shutdown or Release werden von Angreifern gezielt gesucht — meist automatisiert und ohne Rücksicht darauf, wie groß das betroffene Unternehmen ist. Ob eine solche Lücke bei Ihnen tatsächlich offen steht, lässt sich nur durch Prüfung feststellen:
- Schwachstellen-Scan — wiederkehrende Prüfung Ihrer Infrastruktur auf bekannte Lücken wie diese
- Penetrationstest — manuelle Prüfung eigener Software auf Schwachstellen, die kein Werkzeug findet
- Threat Modeling — Schwachstellenklassen im Entwurf vermeiden, statt sie später zu suchen