Guest author Peter Firmstone continues to explore and analyze the theme of #Security Baked Into the #JVM.Today's focus in on the Safe Codebase #Audit
Security Baked Into the JVM: the Safe Codebase Audit PipelineIn Part 1, the minimal deployment showed constraints traveling with the proxy: authentication, encryption, hardened deserialization, all declared in configuration and enforced at the call boundary. The proxy is a JAR. That JAR was downloaded and unmarshalled before any constraint ran. That step is the earlier problem. Distributed Java systems that load remote code are vulnerable to supply chain compromise: an attacker can replace a legitimate JAR with one containing malicious bytecode.
A custom #Rust compiler backend that emits #Java Virtual Machine bytecode. Compile Rust code into a runnable .jar compatible with #JVM 8 .
GitHub - IntegralPilot/rustc_codegen_jvm: Toolchain to create JVM-ready Java bytecode from Rust MIR.Toolchain to create JVM-ready Java bytecode from Rust MIR. - IntegralPilot/rustc_codegen_jvm
Forking the #JVM to Save #JINIhttps://bytecode.news/posts/2026/06/forking-the-jvm-to-save-j…
Forking the JVM to Save JINIJava stripped out the SecurityManager and offered nothing in its place. Peter Firmstone's answer: fork Apache River and OpenJDK to bring back both JINI and JVM-level authorization. Laudable, even necessary - and a very hard sell, because it runs only on his JDK. It's like a post-mortem for JINI while it's still trying to breathe.
Endive, a #JVM native #WebAssembly runtimehttps://endive.run/
JVM native WebAssembly runtime | EndiveEndive is a JVM native WebAssembly runtime with zero native dependencies.
This week, I'm happy to welcome a new guest blogger, Peter Firmstone from Down Under 🇦🇺.He's written a whole series about #security baked into the #JVM. Today's post answers the question: why fork @…
Security Baked Into the JVM: why fork Apache River and OpenJDK?The more distributed a system, the harder it is to secure. Code crosses JVM boundaries. Objects are serialized across trust boundaries. Third-party proxies run inside your process. The usual answer is a network firewall. It helps, but it operates at the wrong level. Java 17 deprecated the SecurityManager, Java 24 put the final nail in its coffin. Most developers didn’t notice.