Grundsaetzlich ist es moeglich, aber mir ist keine unmittelbare/aktuelle Moeglichkeit bekannt, aber ich ziehe mir das auch gerade aus dem Hintern um ehrlich zu sein.
Also die JVM ist in C++ geschrieben, mit "manueller" Speicherverwaltung und natuerlich kann es sein dass man damit hier irgendwo einen Fehler hat, welcher auch durch Java Bytecode ausgeloest werden kann. Aber man braucht dafuer den Fehler in der JVM und den passenden Bytecode damit dieser angesprochen wird, und dann muss die Sache auch noch so sein das man es ausnutzen kann.
Eine andere Moeglichkeit ist mit
Unsafe Speicher selbst zu verwalten, dann ist es, denke ich, schon moeglich das man solche Luecken erzeugt oder ausnutzt.
Wenn man eine native Bibliothek/nativen Code per
JNI oder
JNA anspricht, hat man natuerlich genau das Gleiche.
Aber von "normalem" Java auf einen Buffer-Overflow zu kommen braucht man schon einen Fehler in der JVM. Ich bin mir sehr sicher dass das nicht geht selbst wenn man sich den Bytecode selbst schreibt, weil dieser auch schon nichts mehr mit Speicher zu tun hat. Also grundsaetzlich ist man in Java zusammen mit dem JIT Compiler komplett losgeloest von der Speicherverwaltung, und kann dementsprechend auch nicht derartige Fehler machen oder ausloesen. Das schlieszt Fehler in der JVM natuerlich nicht aus.