mirror of
https://github.com/nextcloud/server.git
synced 2026-02-27 18:37:17 +01:00
fix(Request): Catch exceptions in isTrustedProxy
The function fails if the configured trusted proxies contain invalid characters and the underlying IpUtils will throw. But as it is used by `getRemoteAddress` which is used by logging / templating, thrown errors are not reported but silently fail with error 500. Co-authored-by: Ferdinand Thiessen <opensource@fthiessen.de> Co-authored-by: Joas Schilling <213943+nickvergessen@users.noreply.github.com> Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This commit is contained in:
@@ -573,7 +573,14 @@ class Request implements \ArrayAccess, \Countable, IRequest {
|
||||
* @return boolean true if $remoteAddress matches any entry in $trustedProxies, false otherwise
|
||||
*/
|
||||
protected function isTrustedProxy($trustedProxies, $remoteAddress) {
|
||||
return IpUtils::checkIp($remoteAddress, $trustedProxies);
|
||||
try {
|
||||
return IpUtils::checkIp($remoteAddress, $trustedProxies);
|
||||
} catch (\Throwable) {
|
||||
// We can not log to our log here as the logger is using `getRemoteAddress` which uses the function, so we would have a cyclic dependency
|
||||
// Reaching this line means `trustedProxies` is in invalid format.
|
||||
error_log('Nextcloud trustedProxies has malformed entries');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user