Skip to content

Commit 1e3e32e

Browse files
Merge pull request #200 from AikidoSec/service-hostnames-dont-allow-numbers
2 parents 93c0678 + bbfa89b commit 1e3e32e

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

agent_api/src/main/java/dev/aikido/agent_api/vulnerabilities/ssrf/RequestToServiceHostnameChecker.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
import java.util.regex.Pattern;
55

66
public final class RequestToServiceHostnameChecker {
7-
// Pattern allows alphanumerical input (case-insensitive), dashes (-) and underscores (_)
8-
private static final Pattern SERVICE_HOSTNAME_PATTERN = Pattern.compile("^[a-zA-Z0-9-_]+$");
7+
// Pattern allows alpha input (case-insensitive), dashes (-) and underscores (_)
8+
private static final Pattern SERVICE_HOSTNAME_PATTERN = Pattern.compile("^[a-zA-Z-_]+$");
99
private static final List ALLOWED_LOCALHOST_VARIANTS = List.of(
1010
"localhost", "localdomain"
1111
);

agent_api/src/test/java/vulnerabilities/ssrf/RequestToServiceHostnameCheckerTest.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ class RequestToServiceHostnameCheckerTest {
1313
void testValidHostnames() {
1414
assertTrue(RequestToServiceHostnameChecker.isRequestToServiceHostname("valid_hostname"));
1515
assertTrue(RequestToServiceHostnameChecker.isRequestToServiceHostname("valid-hostname"));
16-
assertTrue(RequestToServiceHostnameChecker.isRequestToServiceHostname("valid123"));
16+
assertFalse(RequestToServiceHostnameChecker.isRequestToServiceHostname("valid123"));
1717
assertTrue(RequestToServiceHostnameChecker.isRequestToServiceHostname("hostname_with_underscores-and-dashes"));
18-
assertTrue(RequestToServiceHostnameChecker.isRequestToServiceHostname("123456"));
18+
assertFalse(RequestToServiceHostnameChecker.isRequestToServiceHostname("123456"));
1919
assertTrue(RequestToServiceHostnameChecker.isRequestToServiceHostname("a-b_c"));
2020
}
2121

@@ -92,6 +92,9 @@ void testAllowedIPv6Addresses() {
9292
assertFalse(RequestToServiceHostnameChecker.isRequestToServiceHostname("2001:0db8:85a3:0000:0000:8a2e:0370:7334"));
9393
assertFalse(RequestToServiceHostnameChecker.isRequestToServiceHostname("::1"));
9494
assertFalse(RequestToServiceHostnameChecker.isRequestToServiceHostname("::ffff:192.168.1.1"));
95+
assertFalse(RequestToServiceHostnameChecker.isRequestToServiceHostname("2130706433"));
96+
assertFalse(RequestToServiceHostnameChecker.isRequestToServiceHostname("127.1"));
97+
assertFalse(RequestToServiceHostnameChecker.isRequestToServiceHostname("0"));
9598
}
9699

97100
@Test

0 commit comments

Comments
 (0)