ArchLinux: 201910-14: php: arbitrary code execution
Summary
A buffer underflow issue has been found in the php-fpm component of php before 7.3.11, 7.2.24 and 7.1.33, leading to remote code execution in certain nginx + php-fpm configurations. This vulnerability can be exploited if the fastcgi_split_path_info directive contains a regexp that can be broken by an attacker by supplying %0a in the path info which results in the fastcgi_param PATH_INFO being empty.
Resolution
Upgrade to 7.3.11-1.
# pacman -Syu "php>=7.3.11-1"
The problem has been fixed upstream in version 7.3.11.
References
https://bugs.php.net/bug.php?id=78599 ;a=commitdiff;h=19e17d3807e6cc0b1ba9443ec5facbd33a61f8fe https://github.com/neex/phuip-fpizdam https://security.archlinux.org/CVE-2019-11043
Workaround
If nginx and php-fpm share the same filesystem, one can first check the script actually exists, so the malicious request will never make it to php-fpm (it is usually done using something like `try_files $uri =404`). Or there may be cgi.fix_pathinfo=0 which will also prevent exploitation.