-
Notifications
You must be signed in to change notification settings - Fork 8k
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: php/php-src
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: php-8.1.29
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: php/php-src
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: php-8.1.30
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 13 commits
- 18 files changed
- 5 contributors
Commits on Jun 5, 2024
-
Fix GHSA-9fcc-425m-g385: bypass CVE-2024-1874
The old code checked for suffixes but didn't take into account trailing whitespace. Furthermore, there is peculiar behaviour with trailing dots too. This all happens because of the special path-handling code inside CreateProcessW. By studying Wine's code, we can see that CreateProcessInternalW calls get_file_name [1] in our case because we haven't provided an application name. That code gets the first whitespace-delimited string into app_name excluding the quotes. It's then passed to create_process_params [2] where there is the path handling code that transforms the command line argument to an image path [3]. Inside Wine, the extension check if performed after these transformations [4]. By doing the same thing in PHP we match the behaviour and can properly match the extension even in the given edge cases. [1] https://github.com/wine-mirror/wine/blob/166895ae3ad3890ad946a309d0fd85e89ea3630e/dlls/kernelbase/process.c#L542-L543 [2] https://github.com/wine-mirror/wine/blob/166895ae3ad3890ad946a309d0fd85e89ea3630e/dlls/kernelbase/process.c#L565 [3] https://github.com/wine-mirror/wine/blob/166895ae3ad3890ad946a309d0fd85e89ea3630e/dlls/kernelbase/process.c#L150-L151 [4] https://github.com/wine-mirror/wine/blob/166895ae3ad3890ad946a309d0fd85e89ea3630e/dlls/kernelbase/process.c#L647-L654
Configuration menu - View commit details
-
Copy full SHA for 4b15f5d - Browse repository at this point
Copy the full SHA 4b15f5dView commit details -
The original code is error-prone due to the "best fit mapping" that happens with the argument parsing but not with the query string. When we get a non-ASCII character, try to remap it and see if it becomes a hyphen. An alternative approach is to create a custom main `wmain` receiving wide-character variations that does the ANSI transformation with the best-fit mapping, but that's more error-prone and could cause unexpected breakage. Another alternative was just don't doing this check altogether and always check for `cgi || fastcgi` instead, but that breaks real-world use-cases.
Configuration menu - View commit details
-
Copy full SHA for 9382673 - Browse repository at this point
Copy the full SHA 9382673View commit details -
We should not early-out with success status if we found an ipv6 hostname, we should keep checking the rest of the conditions. Because integrating the if-check of the ipv6 hostname in the "Validate domain" if-check made the code hard to read, I extracted the condition out to a separate function. This also required to make a few pointers const in order to have some clean code.
Configuration menu - View commit details
-
Copy full SHA for 7e0e3cc - Browse repository at this point
Copy the full SHA 7e0e3ccView commit details -
Configuration menu - View commit details
-
Copy full SHA for 557e09f - Browse repository at this point
Copy the full SHA 557e09fView commit details -
Configuration menu - View commit details
-
Copy full SHA for a87ccc7 - Browse repository at this point
Copy the full SHA a87ccc7View commit details
Commits on Sep 23, 2024
-
multipart/form-data boundaries larger than the read buffer result in erroneous parsing, which violates data integrity. Limit boundary size, as allowed by RFC 1521: Encapsulation boundaries [...] must be no longer than 70 characters, not counting the two leading hyphens. We correctly parse payloads with boundaries of length up to FILLUNIT-strlen("\r\n--") bytes, so allow this for BC.Configuration menu - View commit details
-
Copy full SHA for d65a1e6 - Browse repository at this point
Copy the full SHA d65a1e6View commit details -
It's no use trying to work around whatever the operating system and Apache do because we'll be fighting that until eternity. Change the skip_getopt condition such that when we're running in CGI or FastCGI mode we always skip the argument parsing. This is a BC break, but this seems to be the only way to get rid of this class of issues.
Configuration menu - View commit details
-
Copy full SHA for 4b9cd27 - Browse repository at this point
Copy the full SHA 4b9cd27View commit details -
Apache only generates REDIRECT_STATUS, so explicitly check for that if the server name is Apache, don't allow other variable names. Furthermore, redirect.so and Netscape no longer exist, so remove those entries as we can't check their server name anymore. We now also check for the configuration override *first* such that it always take precedence. This would allow for a mitigation path if something like this happens in the future.
Configuration menu - View commit details
-
Copy full SHA for c1c14c8 - Browse repository at this point
Copy the full SHA c1c14c8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4580b8b - Browse repository at this point
Copy the full SHA 4580b8bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8d87bc3 - Browse repository at this point
Copy the full SHA 8d87bc3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4bcc7d5 - Browse repository at this point
Copy the full SHA 4bcc7d5View commit details -
Co-authored-by: Niels Dossche <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for d5035a7 - Browse repository at this point
Copy the full SHA d5035a7View commit details
Commits on Sep 26, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 773c0ed - Browse repository at this point
Copy the full SHA 773c0edView commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff php-8.1.29...php-8.1.30