fix potential DoS attac in IPv6 regex (#172)
Co-authored-by: Michael Hoennig <michael@hoennig.de> Reviewed-on: https://dev.hostsharing.net/hostsharing/hs.hsadmin.ng/pulls/172 Reviewed-by: Marc Sandlus <marc.sandlus@hostsharing.net>
This commit is contained in:
@@ -11,8 +11,9 @@ import static net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetType.IPV6
|
||||
|
||||
class HsIPv6NumberHostingAssetValidator extends HostingAssetEntityValidator {
|
||||
|
||||
// simplified pattern, the real check is done by letting Java parse the address
|
||||
private static final Pattern IPV6_REGEX = Pattern.compile("([a-f0-9:]+:+)+[a-f0-9]+");
|
||||
// Simple pattern to check only max length and valid characters (hex digits and colons).
|
||||
// A robust validation is done via isValidIPv6Address.
|
||||
private static final Pattern SIMPLE_IPV6_REGEX_PATTERN = Pattern.compile("^[0-9a-fA-F:]{1,39}$");
|
||||
|
||||
HsIPv6NumberHostingAssetValidator() {
|
||||
super(
|
||||
@@ -36,7 +37,7 @@ class HsIPv6NumberHostingAssetValidator extends HostingAssetEntityValidator {
|
||||
|
||||
@Override
|
||||
protected Pattern identifierPattern(final HsHostingAsset assetEntity) {
|
||||
return IPV6_REGEX;
|
||||
return SIMPLE_IPV6_REGEX_PATTERN;
|
||||
}
|
||||
|
||||
private boolean isValidIPv6Address(final String identifier) {
|
||||
|
Reference in New Issue
Block a user