This is an automated email from the ASF dual-hosted git repository.

garydgregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-beanutils.git


The following commit(s) were added to refs/heads/master by this push:
     new 2a696ccf Reject out-of-range color components in ColorConverter (#420)
2a696ccf is described below

commit 2a696ccfc6f6d9dd9acf206eb2268a67924e5a91
Author: Naveed Khan <[email protected]>
AuthorDate: Fri Jul 17 14:20:46 2026 +0000

    Reject out-of-range color components in ColorConverter (#420)
    
    the `JAVA_COLOR_PATTERN` label prefix included `\d`, so a bare triple like 
`1234,5,6` had its leading digit absorbed by the label and parsed as `4,5,6`, 
silently bypassing the `> 255` range check. bind the optional class-name label 
to its `[` so it can no longer eat digits from the numeric groups.
---
 .../org/apache/commons/beanutils2/converters/ColorConverter.java   | 2 +-
 .../apache/commons/beanutils2/converters/ColorConverterTest.java   | 7 +++++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git 
a/src/main/java/org/apache/commons/beanutils2/converters/ColorConverter.java 
b/src/main/java/org/apache/commons/beanutils2/converters/ColorConverter.java
index 86723384..092a9558 100644
--- a/src/main/java/org/apache/commons/beanutils2/converters/ColorConverter.java
+++ b/src/main/java/org/apache/commons/beanutils2/converters/ColorConverter.java
@@ -39,7 +39,7 @@ public class ColorConverter extends AbstractConverter<Color> {
     private static final String HEX_COLOR_PREFIX = "#";
 
     /** Regular expression matching the output of {@link Color#toString()}. */
-    private static final Pattern JAVA_COLOR_PATTERN = 
Pattern.compile("^(?:[A-Za-z\\d._]+)??\\[?(?:r=)?(\\d{1,3}),(?:g=)?(\\d{1,3}),(?:b=)?(\\d{1,3})\\]?$");
+    private static final Pattern JAVA_COLOR_PATTERN = 
Pattern.compile("^(?:[A-Za-z\\d._]*\\[)?(?:r=)?(\\d{1,3}),(?:g=)?(\\d{1,3}),(?:b=)?(\\d{1,3})\\]?$");
 
     /**
      * Construct a <strong>{@link Color}</strong> <em>Converter</em> that 
throws a {@code ConversionException} if an error occurs.
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/ColorConverterTest.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/ColorConverterTest.java
index ed809cd0..5261bce3 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/ColorConverterTest.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/ColorConverterTest.java
@@ -105,6 +105,13 @@ class ColorConverterTest {
         assertEquals(expected, actual);
     }
 
+    @Test
+    void testConvertingOutOfRangeComponentRejected() {
+        assertThrows(ConversionException.class, () -> 
converter.convert(Color.class, "1234,5,6"));
+        assertThrows(ConversionException.class, () -> 
converter.convert(Color.class, "1000,0,0"));
+        assertThrows(ConversionException.class, () -> 
converter.convert(Color.class, "2550,0,0"));
+    }
+
     @Test
     void testConvertingLiteralHex() {
         final Color expected = Color.BLUE;

Reply via email to