Skip to content

Commit 8686485

Browse files
backported commit #23656ae Use Locale.ROOT consistently for toLower/toUpperCase to mitigate CVE-2024-38820
1 parent 897861f commit 8686485

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

spring-context/src/main/java/org/springframework/validation/DataBinder.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import java.util.Collections;
2424
import java.util.HashMap;
2525
import java.util.List;
26+
import java.util.Locale;
2627
import java.util.Map;
2728

2829
import org.apache.commons.logging.Log;
@@ -482,7 +483,8 @@ public void setDisallowedFields(@Nullable String... disallowedFields) {
482483
else {
483484
String[] fieldPatterns = new String[disallowedFields.length];
484485
for (int i = 0; i < fieldPatterns.length; i++) {
485-
fieldPatterns[i] = PropertyAccessorUtils.canonicalPropertyName(disallowedFields[i]).toLowerCase();
486+
String field = PropertyAccessorUtils.canonicalPropertyName(disallowedFields[i]);
487+
fieldPatterns[i] = field.toLowerCase(Locale.ROOT);
486488
}
487489
this.disallowedFields = fieldPatterns;
488490
}
@@ -825,7 +827,7 @@ protected boolean isAllowed(String field) {
825827
String[] allowed = getAllowedFields();
826828
String[] disallowed = getDisallowedFields();
827829
return ((ObjectUtils.isEmpty(allowed) || PatternMatchUtils.simpleMatch(allowed, field)) &&
828-
(ObjectUtils.isEmpty(disallowed) || !PatternMatchUtils.simpleMatch(disallowed, field.toLowerCase())));
830+
(ObjectUtils.isEmpty(disallowed) || !PatternMatchUtils.simpleMatch(disallowed, field.toLowerCase(Locale.ROOT))));
829831
}
830832

831833
/**

0 commit comments

Comments
 (0)