RSSAmplifier

Blog

pwn.win

A diary of security exploration.

pwn.winRSS feed ↗4 posts

Latest posts

Escaping a Python jail using an MD5 collision

I played Google CTF last weekend and there was a fun Python jail challenge, PyCalc. Connecting to the provided host and port gives us a limited Python shell. We can evaluate basic arithmetic expressions, like so: $~ ncat pycalc.2024.ctfcompetition.com 1337 == proof-of-work: disabled == Simple calculator in Python, type 'exit' to exit > 1+1 Caching code validation result with key…

Turning a boring file move into a privilege escalation on Mac

While poking around Parallels Desktop I found a script which is invoked by a setuid-root binary, which has the following snippet: local prl_dir="${usr_home}/Library/Parallels" if [ -e "$prl_dir" -a ! -d "$prl_dir" ]; then log warning "'${prl_dir}' is not a directory. Renaming it." mv -f "$prl_dir"{,~} continue fi Here ${usr_home} represents the home directory of the user for which Parallels…

Escaping Parallels Desktop with Plist Injection

This post details two bugs I found, a plist injection (CVE-2023-27328) and a race condition (CVE-2023-27327), which could be used to escape from a guest Parallels Desktop virtual machine. In this post I’ll break down the findings.

Exploiting a Use-After-Free for code execution in every version of Python 3

A while ago I was browsing the Python bug tracker, and I stumbled upon this bug - “memoryview to freed memory can cause segfault”. It was created in 2012, originally present in Python 2.7, but remains open to this day, 10 years later. This piqued my interest, so I decided to take a closer look.