Secure Coding: Probleme durch CWE 416 – Use After Free

Best Practices Nachrichten

Secure Coding: Probleme durch CWE 416 – Use After Free
JavaProgrammierungSecurity

Die Common Weakness Enumeration CWE-416 beschreibt Sicherheitslücken beim Speichermanagement, die auch Java betreffen – Abhilfe schafft die Cleaner-API.

Die in Common Weakness Enumeration CWE-416 beschriebene Schwachstelle Use After Free tritt auf, wenn ein Programm einen Zeiger weiterhin verwendet, nachdem dieser freigegeben wurde. Das kann Sicherheitslücken öffnen und zu undefiniertem Verhalten führen, einschließlich Abstürzen bis hin zur Datenbeschädigung.

Das Problem entsteht dadurch, dass der vom Zeiger referenzierte Speicher gegebenenfalls für andere Zwecke neu zugewiesen wird. Das wiederum können Angreifer ausnutzen.Seit 1996 programmiert Sven Java in Industrieprojekten und seit über 15 Jahren weltweit in Branchen wie Automobil, Raumfahrt, Versicherungen, Banken, UN und Weltbank. Seit über 10 Jahren ist er von Amerika bis nach Neuseeland als Speaker auf Konferenzen und Community Events, arbeitete als Developer Advocate für JFrog und Vaadin und schreibt regelmäßig Beiträge für IT-Zeitschriften und Technologieportale. Neben seinem Hauptthema Core Java beschäftigt er sich mit TDD und Secure Coding Practices.Secure Coding: CWE 1123 – Sich selbst modifizierenden Code vermeidenDurch die automatische Garbage Collection schützt Java von sich aus vor vielen Arten von Speicherverwaltungsproblemen, einschließlich Use-After-Free-Schwachstellen. Allerdings können dennoch in Java UAF-ähnliche Probleme auftreten, wenn andere Ressourcen als der Speicher falsch verwaltet werden. Nachfolgend finden Sie einige Szenarien in Java, die UAF ähneln, sowie Strategien zu deren Entschärfung.Obwohl der Speicher in Java vom Garbage Collector verwaltet wird, können andere Ressourcen wie Datei-Handles oder Netzwerk-Sockets falsch verwaltet werden, was zu Problemen bei der Verwendung nach dem Schließen führt.import java.io.*; public class UseAfterFreeExample { public static void main { FileInputStream fis=null; try { fis=new FileInputStream; // Use the file input stream... } catch { e.printStackTrace; } finally { if { try { fis.close; } catch { e.printStackTrace; } } } // Attempt to use the file input stream after it has been closed try { int data=fis.read; // This will throw an IOException } catch { System.out.println; } } } Verwenden Sie die in Java 7 eingeführte Try-With-Resources-Anweisung, die sicherstellt, dass jede Ressource am Ende der Anweisung geschlossen wird. import java.io.*; public class UseAfterFreeFixed { public static void main { try ) { // Use the file input stream... } catch { e.printStackTrace; } // fis is automatically closed here // Attempting to use fis here will cause a compilation error } }Setzen Sie Referenzen nach dem Schließen auf Null, um eine versehentliche Wiederverwendung zu vermeiden. import java.io.*; public class UseAfterFreeWithNull { public static void main { FileInputStream fis=null; try { fis=new FileInputStream; // Use the file input stream... } catch { e.printStackTrace; } finally { if { try { fis.close; } catch { e.printStackTrace; } finally { fis=null; // Prevent reuse } } } // fis is now null, so the following attempt // to use it will fail at compile-time if { try { int data=fis.read; // This will not compile since fis is null } catch { System.out.println; } } } }Auch wenn es sich hierbei nicht unmittelbar um ein UAF-Problem handelt, kann der Missbrauch schwacher Referenzen dennoch negative Folgen haben, wenn auf Objekte zugegriffen wird, nachdem sie vom Garbage Collector zurückgefordert wurden. import java.lang.ref.WeakReference; public class WeakReferenceExample { public static void main { Object obj=new Object; WeakReference weakRef=new WeakReference; obj=null; // Eligible for garbage collection System.gc; // Suggest garbage collection // Attempt to use the object after it may have been collected if !=null) { System.out.println; } else { System.out.println; } } } In diesem Beispiel kann der Zugriff auf die schwache Referenz nach dem Annullieren der starken Referenz und dem Vorschlagen der Speicherbereinigung zu Null führen, was darauf hinweist, dass das Objekt vom GC bereits eingesammelt wurde. Vermeiden Sie die Verwendung schwacher Referenzen für kritische Objekte, die noch benötigt werden.if !=null) { // Safe to use the object Object obj=weakRef.get; // Use obj } else { // Handle the case where the object has been collected System.out.println; } Während die automatische Speicherverwaltung von Java das Risiko herkömmlicher UAF-Schwachstellen verringert, müssen Entwicklerinnen und Entwickler dennoch bei der Ressourcenverwaltung und schwachen Referenzen vorsichtig sein, um vergleichbare Probleme zu vermeiden. Moderne Java-Funktionen wieund die Berücksichtigung von Objektreferenzen können dabei helfen, robusten und fehlerfreien Code aufrechtzuerhalten.Diese Sicherheitslücke findet sich in der FIPS-Java-API von Bouncy Castle BC-FJA vor Version 1.0.2.4. Änderungen im JVM-Garbage Collector in Java 13 und späteren Versionen können dieses Problem auslösen und dazu führen, dass vom Modul verwendete temporäre Schlüssel auf Null gesetzt werden, während sie noch verwendet werden. Dies führt zu Fehlern oder potenziellem Informationsverlust. Benutzer der FIPS-Konformität sind davon nicht betroffen, da dies für Java 7, 8 und 11 gilt.Diese CVE betrifft die PJSIP-Multimedia-Kommunikationsbibliothek, die in mehreren Sprachen, einschließlich Java, geschrieben ist. Das Problem tritt auf, wenn die Synchronisierung zwischen SRTP-Medien auf höherer Ebene und Transport auf niedrigerer Ebene, wie UDP, nicht aufrechterhalten wird – was zu einer UAF-Schwachstelle führt. Dies kann zu einer unerwarteten Beendigung der Anwendung oder einer Speicherbeschädigung führen. Die beschriebenen Beispiele verdeutlichen die Bedeutung einer ordnungsgemäßen Speicher- und Ressourcenverwaltung in Java-Anwendungen, auch wenn die Sprache den Speicher durch Garbage Collection verwaltet. Weitere Informationen zu diesen Schwachstellen finden Sie in der National Vulnerability Database oder in spezifischen Hinweisen auf Plattformen wie GitHub und mvnrepository.

Wir haben diese Nachrichten zusammengefasst, damit Sie sie schnell lesen können. Wenn Sie sich für die Nachrichten interessieren, können Sie den vollständigen Text hier lesen. Weiterlesen:

heiseonline /  🏆 11. in DE

Java Programmierung Security Softwareentwicklung Use After Free

 

Deutschland Neuesten Nachrichten, Deutschland Schlagzeilen

Similar News:Sie können auch ähnliche Nachrichten wie diese lesen, die wir aus anderen Nachrichtenquellen gesammelt haben.

Secure Coding: CWE 1123 – Sich selbst modifizierenden Code vermeidenSecure Coding: CWE 1123 – Sich selbst modifizierenden Code vermeidenDie Common Weakness Enumeration CWE-1123 warnt vor dem übermäßigen Einsatz von sich selbst modifizierendem Code. Java-Entwickler sollten mit Bedacht agieren.
Weiterlesen »

Kurs von Ferrari NV bricht ein (416,7325 €)Kurs von Ferrari NV bricht ein (416,7325 €)An der Börse fällt zur Stunde die Ferrari NV-Aktie negativ auf. Das Wertpapier verbilligt sich heute deutlich. Ein Verlust von 3,49 Prozent zeigt die Kurstafel für die Aktie von Ferrari NV an. Damit gehört
Weiterlesen »

Samsung Smartphones: Apps sperren ohne Secure FolderSamsung Smartphones: Apps sperren ohne Secure FolderSamsung arbeitet an der Funktion, Apps direkt über One UI zu sperren, ohne sie in den Secure Folder zu verschieben. Diese Funktion soll den Alltag erleichtern und den Schutz vor neugierigen Blicken verbessern.
Weiterlesen »

De/Coding Culture: Spotify Wrapped, vom Pop-Phänomen zum MassenproduktDe/Coding Culture: Spotify Wrapped, vom Pop-Phänomen zum MassenproduktLängst mehr als ein persönlicher Jahresrückblick. Spotify Wrapped ist ein Format geworden, das allerdings auch Kritik erfährt.
Weiterlesen »

Ivanti Connect Secure: Angreifer attackieren kritische SicherheitslückeIvanti Connect Secure: Angreifer attackieren kritische SicherheitslückeIvanti warnt vor aktiven Angriffen auf Ivanti Secure Connect-Systeme. Durch Codeschmuggel können Netzwerke kompromittiert werden.
Weiterlesen »



Render Time: 2026-05-16 12:11:56