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

casion pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/linkis.git


The following commit(s) were added to refs/heads/master by this push:
     new 7f3bf7e95f Add urlencode check for jdbc url in SecurityUtils.java and 
fix password leak in HiveUtils.java (#5261)
7f3bf7e95f is described below

commit 7f3bf7e95f1314a142369bfb6803a882ef5500b7
Author: Le1a <[email protected]>
AuthorDate: Mon Sep 22 16:57:29 2025 +0800

    Add urlencode check for jdbc url in SecurityUtils.java and fix password 
leak in HiveUtils.java (#5261)
---
 .../java/org/apache/linkis/common/utils/SecurityUtils.java  | 13 +++++++++++++
 .../java/org/apache/linkis/metadata/util/HiveUtils.java     |  2 +-
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git 
a/linkis-commons/linkis-common/src/main/java/org/apache/linkis/common/utils/SecurityUtils.java
 
b/linkis-commons/linkis-common/src/main/java/org/apache/linkis/common/utils/SecurityUtils.java
index c08d16b529..6716fc9395 100644
--- 
a/linkis-commons/linkis-common/src/main/java/org/apache/linkis/common/utils/SecurityUtils.java
+++ 
b/linkis-commons/linkis-common/src/main/java/org/apache/linkis/common/utils/SecurityUtils.java
@@ -124,6 +124,19 @@ public abstract class SecurityUtils {
 
     // 4. Check url security, especially for the possibility of malicious 
characters appearing on
     // the host
+    try {
+      while (url.contains("%")) {
+        String decodedUrl = URLDecoder.decode(url, "UTF-8");
+        if (decodedUrl.equals(url)) {
+          // If the decomposition is the same as the original, avoid infinite 
loop
+          break;
+        }
+        url = decodedUrl;
+      }
+    } catch (UnsupportedEncodingException e) {
+      logger.error("URL decode failed: {}", e.getMessage());
+      throw new LinkisSecurityException(35001, "URL decode failed.");
+    }
     checkUrlIsSafe(url);
   }
 
diff --git 
a/linkis-public-enhancements/linkis-datasource/linkis-metadata/src/main/java/org/apache/linkis/metadata/util/HiveUtils.java
 
b/linkis-public-enhancements/linkis-datasource/linkis-metadata/src/main/java/org/apache/linkis/metadata/util/HiveUtils.java
index c85f96d91b..d2b8c45d0c 100644
--- 
a/linkis-public-enhancements/linkis-datasource/linkis-metadata/src/main/java/org/apache/linkis/metadata/util/HiveUtils.java
+++ 
b/linkis-public-enhancements/linkis-datasource/linkis-metadata/src/main/java/org/apache/linkis/metadata/util/HiveUtils.java
@@ -49,7 +49,7 @@ public class HiveUtils {
     try {
       res = new String(decoder.decode(str));
     } catch (Throwable e) {
-      logger.error(str + " decode failed", e);
+      logger.error("decode failed", e);
     }
     return res;
   }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to