diff --git a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/common/util/JaxrsUtil.java b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/common/util/JaxrsUtil.java
index 0568fc2..d0c73b1 100644
--- a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/common/util/JaxrsUtil.java
+++ b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/common/util/JaxrsUtil.java
@@ -35,15 +35,10 @@
 
 public abstract class JaxrsUtil {
 
-  public static final int unprivilegedPort() throws IOException {
-    for (int i = 0; i < 1025; i++) {
-      try (final ServerSocket serverSocket = new ServerSocket(0)) {
-        final int port = serverSocket.getLocalPort();
-        if (port > 1024)
-          return port;
-      }
+  public static final int freePort() throws IOException {
+    try (final ServerSocket serverSocket = new ServerSocket(0)) {
+      return serverSocket.getLocalPort();
     }
-    throw new IOException("No free unprivileged port");
   }
 
   public static final//
diff --git a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/sebootstrap/SeBootstrapIT.java b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/sebootstrap/SeBootstrapIT.java
index c62736b..bf1a495 100644
--- a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/sebootstrap/SeBootstrapIT.java
+++ b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/sebootstrap/SeBootstrapIT.java
@@ -22,7 +22,7 @@
 import static org.hamcrest.Matchers.greaterThan;
 import static org.hamcrest.Matchers.is;
 
-import static ee.jakarta.tck.ws.rs.common.util.JaxrsUtil.unprivilegedPort;
+import static ee.jakarta.tck.ws.rs.common.util.JaxrsUtil.freePort;
 
 import java.io.IOException;
 import java.util.Collections;
@@ -371,7 +371,7 @@
     };
 
     private static final int someFreeIpPort() throws IOException {
-        return unprivilegedPort();
+        return freePort();
     }
 
     private static final int mockInt() {
diff --git a/jaxrs-tck/src/test/java/ee/jakarta/tck/ws/rs/common/util/JaxrsUtilTest.java b/jaxrs-tck/src/test/java/ee/jakarta/tck/ws/rs/common/util/JaxrsUtilTest.java
index 8129aa3..f49141c 100644
--- a/jaxrs-tck/src/test/java/ee/jakarta/tck/ws/rs/common/util/JaxrsUtilTest.java
+++ b/jaxrs-tck/src/test/java/ee/jakarta/tck/ws/rs/common/util/JaxrsUtilTest.java
@@ -20,7 +20,7 @@
 import static org.hamcrest.Matchers.greaterThan;
 import static org.hamcrest.Matchers.is;
 
-import static ee.jakarta.tck.ws.rs.common.util.JaxrsUtil.unprivilegedPort;
+import static ee.jakarta.tck.ws.rs.common.util.JaxrsUtil.freePort;
 
 import java.io.IOException;
 
@@ -29,12 +29,12 @@
 final class JaxrsUtilTest {
 
     @Test
-    final void shouldReturnPortLarger1024() throws IOException {
+    final void shouldReturnPortFreePort() throws IOException {
         // when
-        final int chosenPort = unprivilegedPort();
+        final int chosenPort = freePort();
 
         // then
-        assertThat(chosenPort, is(greaterThan(1024)));
+        assertThat(chosenPort, is(greaterThan(0)));
     }
 
 }
