Cyber Risks · PortSwigger Research

Hiding payloads in Java source code strings

Summary: PortSwigger researcher Gareth Heyes showed that the Java compiler treats unicode escapes like \u0022 as real syntax inside source code strings, so an encoded double quote closes a string and lets Runtime.getRuntime() execute a command. Heyes applied this to Bambdas, Burp Suite's Java-based filtering feature, noting the technique was not publicly documented before and that a Bambda allows arbitrary code execution.

What's compelling: A Bambda looks like a simple filter but runs arbitrary code on the local machine, so any Bambda pulled from an untrusted source is executable code that needs validation before use.

Read the original at PortSwigger Research ↗

Topics
Vulnerabilities & Patching
Related