Taggart :donor: on Nostr: Reading the awesome WatchTowr writeup of CVE-2024-0012 and CVE-2024-9474, the Palo ...
Reading the awesome WatchTowr writeup of CVE-2024-0012 and CVE-2024-9474, the Palo Alto RCE/privesc one-two punch. Great work here as always. And h/t to nprofile1qy2hwumn8ghj7un9d3shjtnddaehgu3wwp6kyqpq57zmf2m5d8ak5l7538naytp8tavkx6uc58x8wqnchjfxj83dhkaq9gmr3e (nprofile…mr3e) , of course.
https://labs.watchtowr.com/pots-and-pans-aka-an-sslvpn-palo-alto-pan-os-cve-2024-0012-and-cve-2024-9474/
A few things stand out:
First, sorry nprofile1qy2hwumn8ghj7un9d3shjtnddaehgu3wwp6kyqpqfykvyqwqav5328tmuhtqp49urfrzvgzf99d3x56mta4p9yxj4l7s3ns6wl (nprofile…s6wl), no #directorytraversalmemes for you:
We simply… supply the off value to the X-PAN-AUTHCHECK HTTP request header, and the server helpfully turns off authentication?! At this point, why is anyone surprised?
That’s right folks, a simple reproducer for CVE-2024-0012. It couldn't be easier than that.
That's the auth bypass. And then, WHAT IS THIS DOING IN ANYTHING
return $p->pexecute("/usr/local/bin/pan_elog -u audit -m $msg -o $username");
So obviously if that $username has shell metacharacters, you have yourself a nice command injection.
And guess what user the service runs as?
https://labs.watchtowr.com/pots-and-pans-aka-an-sslvpn-palo-alto-pan-os-cve-2024-0012-and-cve-2024-9474/
A few things stand out:
First, sorry nprofile1qy2hwumn8ghj7un9d3shjtnddaehgu3wwp6kyqpqfykvyqwqav5328tmuhtqp49urfrzvgzf99d3x56mta4p9yxj4l7s3ns6wl (nprofile…s6wl), no #directorytraversalmemes for you:
We simply… supply the off value to the X-PAN-AUTHCHECK HTTP request header, and the server helpfully turns off authentication?! At this point, why is anyone surprised?
That’s right folks, a simple reproducer for CVE-2024-0012. It couldn't be easier than that.
That's the auth bypass. And then, WHAT IS THIS DOING IN ANYTHING
return $p->pexecute("/usr/local/bin/pan_elog -u audit -m $msg -o $username");
So obviously if that $username has shell metacharacters, you have yourself a nice command injection.
And guess what user the service runs as?