Did you know you can call JNI without writing native code, patch bytecode without an agent, and use Unsafe without warnings?
11 sneaky ways into JDK internals through reflection, agents, FFM, type confusion, bytecode manipulation and more.
wouter.coekaerts.be/2026/dec…
I'm excited to announce FlowTracker, a Java agent that tracks data flowing through Java programs.
It helps you understand where any program got its output from, what it means, and why it wrote it.
Watch the video, explore the live demo and read more at github.com/coekie/flowtracke…
Wouter Coekaerts retweeted
I just added solutions to the non-empty empty String challenge. A simple one, but also two original solutions, including one that does not even use any concurrency!
Abusing a bug in java.lang.String to make "hello world" not start with "hello".
Plus a challenge: make an empty String that is not equal to "".
wouter.coekaerts.be/2023/bre…
Now that another string formatting DoS vulnerability in java (CVE-2021-45105) is in the news, a reminder:
Passing user input into the format for String.format also makes you vulnerable to a DoS.
Wouter Coekaerts retweeted
copilot.github.com now shows me sentiment.ts as the first example, which is not better. It adds a "urlencoded" header, but it's not actually url encoded. What if `text` contains a `&`? You might even call that a security vulnerability.
Wouter Coekaerts retweeted
Ok, #Java folks, here's a puzzle for you. Replace '...' in this code with proper Java expressions so that the first println prints 'true' and the second one prints 'false' when running on Java 16.
You can say that format string vulnerabilities are not a thing in Java, but String.format("%2147483647%") is not your friend.
Explanation: it tries to create a String of length Integer.MAX_VALUE, that is 2GB.
To make it succeed (assuming your heap size is big enough), pick a slightly smaller size.
Wouter Coekaerts retweeted
Replying to @FredTaming
Wife: Please go to the store to buy some scissors, and if they have eggs, get 3.
...
Store clerk: Hey! You break it, you buy it!
That's "<span class="hidden-soho">79</span><span class="hidden-res">73,55</span> €" on orange.be/nl/producten-en-di… , offering this extra special deal to Chrome users.
Wouter Coekaerts retweeted
A puzzle: provide a Java code sample where replacing explicit `java.lang.Object` local variable type with `var` breaks the program at runtime without breaking the compilation.
Wouter Coekaerts retweeted
Two solutions to the challenge, including some explanation: wouter.coekaerts.be/2019/puz…
Clarification 2: Follow the example of the screenshot, and common sense(?). A syntax error probably does not look like just "Hello World".
Two solutions to the challenge, including some explanation: wouter.coekaerts.be/2019/puz…










