!10 [sync] PR-4: Fix CVE-2023-51074

From: @openeuler-sync-bot 
Reviewed-by: @wangchong1995924 
Signed-off-by: @wangchong1995924
This commit is contained in:
openeuler-ci-bot 2024-03-04 03:45:01 +00:00 committed by Gitee
commit d86ae3fb66
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
2 changed files with 78 additions and 4 deletions

70
CVE-2023-51074.patch Normal file
View File

@ -0,0 +1,70 @@
From 71a09c1193726c010917f1157ecbb069ad6c3e3b Mon Sep 17 00:00:00 2001
From: Tobi <22715034+twobiers@users.noreply.github.com>
Date: Thu, 18 Jan 2024 16:48:57 +0100
Subject: [PATCH] Check for the existence of the next significant bracket
(#985)
---
.../jayway/jsonpath/internal/path/PathCompiler.java | 6 +++++-
.../src/test/java/com/jayway/jsonpath/Issue_970.java | 12 ++++++++++++
.../src/test/java/com/jayway/jsonpath/Issue_973.java | 12 ++++++++++++
3 files changed, 29 insertions(+), 1 deletion(-)
create mode 100644 json-path/src/test/java/com/jayway/jsonpath/Issue_970.java
create mode 100644 json-path/src/test/java/com/jayway/jsonpath/Issue_973.java
diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/path/PathCompiler.java b/json-path/src/main/java/com/jayway/jsonpath/internal/path/PathCompiler.java
index e4fcd31..e0fb96e 100644
--- a/json-path/src/main/java/com/jayway/jsonpath/internal/path/PathCompiler.java
+++ b/json-path/src/main/java/com/jayway/jsonpath/internal/path/PathCompiler.java
@@ -374,7 +374,11 @@ public class PathCompiler {
readPosition++;
}
- int endBracketIndex = path.indexOfNextSignificantChar(endPosition, CLOSE_SQUARE_BRACKET) + 1;
+ int endBracketIndex = path.indexOfNextSignificantChar(endPosition, CLOSE_SQUARE_BRACKET);
+ if(endBracketIndex == -1) {
+ fail("Property has not been closed - missing closing ]");
+ }
+ endBracketIndex++;
path.setPosition(endBracketIndex);
diff --git a/json-path/src/test/java/com/jayway/jsonpath/Issue_970.java b/json-path/src/test/java/com/jayway/jsonpath/Issue_970.java
new file mode 100644
index 0000000..25f52b7
--- /dev/null
+++ b/json-path/src/test/java/com/jayway/jsonpath/Issue_970.java
@@ -0,0 +1,12 @@
+package com.jayway.jsonpath;
+
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.assertThatNoException;
+
+public class Issue_970 {
+ @Test
+ public void shouldNotCauseStackOverflow() {
+ assertThatNoException().isThrownBy(() -> Criteria.where("[']',"));
+ }
+}
diff --git a/json-path/src/test/java/com/jayway/jsonpath/Issue_973.java b/json-path/src/test/java/com/jayway/jsonpath/Issue_973.java
new file mode 100644
index 0000000..a1d05ac
--- /dev/null
+++ b/json-path/src/test/java/com/jayway/jsonpath/Issue_973.java
@@ -0,0 +1,12 @@
+package com.jayway.jsonpath;
+
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.*;
+
+public class Issue_973 {
+ @Test
+ public void shouldNotCauseStackOverflow() {
+ assertThatNoException().isThrownBy(() -> Criteria.parse("@[\"\",/\\"));
+ }
+}
--
2.33.0

View File

@ -1,6 +1,6 @@
Name: json-path
Version: 2.1.0
Release: 1
Release: 2
Summary: Java JsonPath implementation
License: ASL 2.0 and BSD
URL: https://github.com/jayway/JsonPath
@ -8,6 +8,8 @@ Source0: https://github.com/jayway/JsonPath/archive/json-path-%{vers
Source1: https://repo1.maven.org/maven2/com/jayway/jsonpath/json-path/%{version}/json-path-%{version}.pom
Source2: https://repo1.maven.org/maven2/com/jayway/jsonpath/json-path-assert/%{version}/json-path-assert-%{version}.pom
Patch0: %{name}-2.1.0-JsonOrg.patch
# https://github.com/json-path/JsonPath/commit/71a09c1193726c010917f1157ecbb069ad6c3e3b
Patch1: CVE-2023-51074.patch
BuildRequires: maven-local mvn(com.fasterxml.jackson.core:jackson-databind)
BuildRequires: mvn(com.google.code.gson:gson) mvn(commons-io:commons-io) mvn(junit:junit)
BuildRequires: mvn(net.minidev:json-smart) mvn(org.apache.felix:maven-bundle-plugin)
@ -23,12 +25,11 @@ Summary: Javadoc for %{name}
This package contains javadoc for %{name}.
%prep
%setup -q -n JsonPath-%{name}-%{version}
%autosetup -n JsonPath-%{name}-%{version} -p1
find -type f -name *.jar -print -delete
find -type f -name *.class -print -delete
cp -p %{SOURCE1} %{name}/pom.xml
cp -p %{SOURCE2} %{name}-assert/pom.xml
%patch0 -p1
rm -rf %{name}/src/main/java/com/jayway/jsonpath/spi/json/JsonOrg*.java \
%{name}/src/main/java/com/jayway/jsonpath/spi/mapper/JsonOrg*.java \
%{name}/src/test/java/com/jayway/jsonpath/JsonOrg*.java
@ -92,7 +93,7 @@ done
%mvn_package :%{name}-parent __noinstall
%build
%mvn_build -- -Dproject.build.sourceEncoding=UTF-8
%mvn_build -f -- -Dproject.build.sourceEncoding=UTF-8 -Dsource=8
%install
%mvn_install
@ -105,5 +106,8 @@ done
%license LICENSE
%changelog
* Fri Mar 01 2024 yaoxin <yao_xin001@hoperun.com> - 2.1.0-2
- Fix CVE-2023-51074
* Mon Aug 24 2020 wangchong <wangchong56@huawei.com> - 2.1.0-1
- package init