diff --git a/core/src/main/java/org/springframework/security/util/matcher/InetAddressMatchers.java b/core/src/main/java/org/springframework/security/util/matcher/InetAddressMatchers.java index dbe4e7be65..cc77211f11 100644 --- a/core/src/main/java/org/springframework/security/util/matcher/InetAddressMatchers.java +++ b/core/src/main/java/org/springframework/security/util/matcher/InetAddressMatchers.java @@ -335,6 +335,9 @@ public final class InetAddressMatchers { @Override public boolean matches(@Nullable InetAddress address) { + if (address == null) { + return false; + } return !this.internalMatcher.matches(address); } diff --git a/core/src/test/java/org/springframework/security/util/matcher/InetAddressMatchersTests.java b/core/src/test/java/org/springframework/security/util/matcher/InetAddressMatchersTests.java index 387af3c381..3df99ccea9 100644 --- a/core/src/test/java/org/springframework/security/util/matcher/InetAddressMatchersTests.java +++ b/core/src/test/java/org/springframework/security/util/matcher/InetAddressMatchersTests.java @@ -415,6 +415,12 @@ class InetAddressMatchersTests { @Nested class ExternalInetAddressMatcherTests { + @Test + void matchesWhenInetAddressNullThenReturnsFalse() { + InetAddressMatcher matcher = InetAddressMatchers.matchExternal().build(); + assertThat(matcher.matches((InetAddress) null)).isFalse(); + } + @ParameterizedTest @ValueSource(strings = { "8.8.8.8", "1.1.1.1" }) void matchesWhenIpv4PublicThenReturnsTrue(String address) throws Exception {