Apache Guacamole Research Chains Protocol Injection With Use-After-Free
· 43:14 · Watch on YouTube ↗
Summary
Stefan Schiller demonstrates how a Guacamole protocol parser mismatch can expose credentials and enable a use-after-free exploit, leading to code execution on the remote desktop gateway.
Key points
- A Java client and C server count certain Unicode characters differently, allowing a low-privileged user to inject protocol instructions through an image-type parameter.
- An injected connection instruction can redirect the server and expose connection settings, including credentials, to an attacker-controlled listener.
- The researcher used RDP drive redirection to read accessible server files and obtain process memory-layout information.
- A race involving audio-channel closure after disconnection creates a use-after-free condition; the researcher demonstrated it reliably with xrdp.
- The exploit used connection sharing to overcome heap arena separation and demonstrated code execution on the Guacamole server.
- Schiller recommends examining protocol specifications and using fuzzing to identify inconsistencies between parsers.
Article Details
- Topics
- [01:46] Guacamole architecture and web-facing attack surface
- [07:25] Unicode length mismatch and parser differential
- [16:12] Protocol instruction injection and connection redirection
- [19:06] Credential exposure and server file access
- [22:52] Audio-channel concurrency and use-after-free
- [28:29] Heap exploitation and connection-sharing techniques
- [40:20] Code-execution demonstration and research lessons
