diff --git a/common/cluster-api/pom.xml b/common/cluster-api/pom.xml
index d92b87fbb0..d2ad3b48a8 100644
--- a/common/cluster-api/pom.xml
+++ b/common/cluster-api/pom.xml
@@ -60,10 +60,6 @@
             jakarta.annotation
             jakarta.annotation-api
         
-        
-            com.github.java-json-tools
-            json-schema-validator
-        
         
             org.slf4j
             slf4j-api
diff --git a/common/dao-api/pom.xml b/common/dao-api/pom.xml
index cb8e578760..a4b4d807dd 100644
--- a/common/dao-api/pom.xml
+++ b/common/dao-api/pom.xml
@@ -56,10 +56,6 @@
             jakarta.annotation
             jakarta.annotation-api
         
-        
-            com.github.java-json-tools
-            json-schema-validator
-        
         
             org.slf4j
             slf4j-api
diff --git a/dao/pom.xml b/dao/pom.xml
index 9dca643b5d..2206d8a7d7 100644
--- a/dao/pom.xml
+++ b/dao/pom.xml
@@ -59,6 +59,10 @@
             org.thingsboard.common
             util
         
+        
+            com.networknt
+            json-schema-validator
+        
         
             org.slf4j
             slf4j-api
diff --git a/dao/src/main/java/org/thingsboard/server/dao/component/BaseComponentDescriptorService.java b/dao/src/main/java/org/thingsboard/server/dao/component/BaseComponentDescriptorService.java
index 5acf1b0f97..2c5d6fb3c5 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/component/BaseComponentDescriptorService.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/component/BaseComponentDescriptorService.java
@@ -16,10 +16,10 @@
 package org.thingsboard.server.dao.component;
 
 import com.fasterxml.jackson.databind.JsonNode;
-import com.github.fge.jsonschema.core.exceptions.ProcessingException;
-import com.github.fge.jsonschema.core.report.ProcessingReport;
-import com.github.fge.jsonschema.main.JsonSchemaFactory;
-import com.github.fge.jsonschema.main.JsonValidator;
+import com.networknt.schema.JsonSchema;
+import com.networknt.schema.JsonSchemaFactory;
+import com.networknt.schema.SpecVersion;
+import com.networknt.schema.ValidationMessage;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -36,6 +36,7 @@ import org.thingsboard.server.dao.service.DataValidator;
 import org.thingsboard.server.dao.service.Validator;
 
 import java.util.Optional;
+import java.util.Set;
 
 /**
  * @author Andrew Shvayka
@@ -89,15 +90,18 @@ public class BaseComponentDescriptorService implements ComponentDescriptorServic
 
     @Override
     public boolean validate(TenantId tenantId, ComponentDescriptor component, JsonNode configuration) {
-        JsonValidator validator = JsonSchemaFactory.byDefault().getValidator();
         try {
             if (!component.getConfigurationDescriptor().has("schema")) {
                 throw new DataValidationException("Configuration descriptor doesn't contain schema property!");
             }
             JsonNode configurationSchema = component.getConfigurationDescriptor().get("schema");
-            ProcessingReport report = validator.validate(configurationSchema, configuration);
-            return report.isSuccess();
-        } catch (ProcessingException e) {
+
+            JsonSchemaFactory factory = JsonSchemaFactory.getInstance(SpecVersion.VersionFlag.V4);
+            JsonSchema schema = factory.getSchema(configurationSchema);
+
+            Set validationMessages = schema.validate(configuration);
+            return validationMessages.isEmpty();
+        } catch (Exception e) {
             throw new IncorrectParameterException(e.getMessage(), e);
         }
     }
diff --git a/dao/src/test/java/org/thingsboard/server/dao/component/BaseComponentDescriptorServiceTest.java b/dao/src/test/java/org/thingsboard/server/dao/component/BaseComponentDescriptorServiceTest.java
new file mode 100644
index 0000000000..d76c11f708
--- /dev/null
+++ b/dao/src/test/java/org/thingsboard/server/dao/component/BaseComponentDescriptorServiceTest.java
@@ -0,0 +1,98 @@
+/**
+ * Copyright © 2016-2025 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.dao.component;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import org.thingsboard.common.util.JacksonUtil;
+import org.thingsboard.server.common.data.id.TenantId;
+import org.thingsboard.server.common.data.plugin.ComponentClusteringMode;
+import org.thingsboard.server.common.data.plugin.ComponentDescriptor;
+import org.thingsboard.server.common.data.plugin.ComponentScope;
+import org.thingsboard.server.common.data.plugin.ComponentType;
+import org.thingsboard.server.dao.exception.IncorrectParameterException;
+
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+class BaseComponentDescriptorServiceTest {
+
+    private BaseComponentDescriptorService service;
+    private ComponentDescriptor componentDescriptor;
+    private TenantId tenantId;
+
+    @BeforeEach
+    void setUp() {
+        service = Mockito.spy(BaseComponentDescriptorService.class);
+        tenantId = TenantId.SYS_TENANT_ID;
+
+        // Create a simple component descriptor
+        componentDescriptor = new ComponentDescriptor();
+        componentDescriptor.setType(ComponentType.ACTION);
+        componentDescriptor.setScope(ComponentScope.TENANT);
+        componentDescriptor.setClusteringMode(ComponentClusteringMode.ENABLED);
+        componentDescriptor.setName("Test Component");
+        componentDescriptor.setClazz("org.thingsboard.test.TestComponent");
+
+        // Create configuration descriptor with schema from JSON string
+        String configDescriptorJson = """
+                {
+                  "schema": {
+                    "type": "object",
+                    "properties": {
+                      "testField": {
+                        "type": "string"
+                      }
+                    },
+                    "required": ["testField"]
+                  }
+                }""";
+
+        componentDescriptor.setConfigurationDescriptor(JacksonUtil.toJsonNode(configDescriptorJson));
+    }
+
+    @Test
+    void testValidate() {
+        // Create valid configuration from JSON string
+        String validConfigJson = "{\"testField\": \"test value\"}";
+        JsonNode validConfig = JacksonUtil.toJsonNode(validConfigJson);
+
+        // Create invalid configuration (missing required field) from JSON string
+        String invalidConfigJson = "{}";
+        JsonNode invalidConfig = JacksonUtil.toJsonNode(invalidConfigJson);
+
+        // Test valid configuration
+        boolean validResult = service.validate(tenantId, componentDescriptor, validConfig);
+        assertTrue(validResult, "Valid configuration should pass validation");
+
+        // Test invalid configuration
+        boolean invalidResult = service.validate(tenantId, componentDescriptor, invalidConfig);
+        assertFalse(invalidResult, "Invalid configuration should fail validation");
+
+        // Test with component descriptor without schema
+        ComponentDescriptor noSchemaDescriptor = new ComponentDescriptor(componentDescriptor);
+        noSchemaDescriptor.setConfigurationDescriptor(JacksonUtil.toJsonNode("{}"));
+
+        // Should throw exception when schema is missing
+        assertThrows(IncorrectParameterException.class, () -> {
+            service.validate(tenantId, noSchemaDescriptor, validConfig);
+        }, "Should throw exception when schema is missing");
+    }
+
+}
diff --git a/pom.xml b/pom.xml
index 074bbbce03..02d950b830 100755
--- a/pom.xml
+++ b/pom.xml
@@ -74,7 +74,7 @@
         2.17.2
         1.7.0
         4.4.0
-        2.2.14
+        1.5.6
         0.6.12
         3.12.1
         2.0.0-M15
@@ -1601,15 +1601,9 @@
                 ${auth0-jwt.version}
             
             
-                com.github.java-json-tools
+                com.networknt
                 json-schema-validator
                 ${json-schema-validator.version}
-                
-                    
-                        com.sun.mail
-                        mailapi
-                    
-                
             
             
                 org.eclipse.leshan