Skip to content

Commit 292a547

Browse files
Bump armeria + grpc + protobuf to fix CVE-2024-7254 (#5891)
Bump armeria + grpc + protobuf to fix CVE-2024-7254 Upgrades protobuf dependencies with versions that fix Fixes CVE-2024-7254. Use inline mocks in DnsPeerListProviderCreationTest to support mocking final classes. Updates to the GrpcRequestExceptionHandlerTest required by the update to the Armeria test library. Enforce a consistent JUnit version across the project to avoid JUnit consistency issues. Signed-off-by: Karsten Schnitter <k.schnitter@sap.com> Signed-off-by: David Venable <dlv@amazon.com> Co-authored-by: David Venable <dlv@amazon.com>
1 parent c8f66fa commit 292a547

4 files changed

Lines changed: 20 additions & 16 deletions

File tree

build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,9 @@ subprojects {
242242
def java8Name = details.requested.name.replace('-jdk15on', '-jdk18on')
243243
details.useTarget group: 'org.bouncycastle', name: java8Name, version: libs.bouncycastle.bcprov.get().version
244244
details.because 'Use only the Java 8 artifacts of BouncyCastle'
245+
} else if (details.requested.group == 'org.junit.jupiter') {
246+
details.useTarget group: details.requested.group, name: details.requested.name, version: testLibs.versions.junit.get()
247+
details.because 'Use the defined JUnit of the Data Prepper project to ensure consistent versions.'
245248
}
246249
}
247250
}

data-prepper-core/src/test/java/org/opensearch/dataprepper/core/peerforwarder/discovery/DnsPeerListProviderCreationTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.junit.jupiter.api.Test;
1212
import org.junit.jupiter.api.extension.ExtendWith;
1313
import org.mockito.Mock;
14+
import org.mockito.MockMakers;
1415
import org.mockito.MockedStatic;
1516
import org.mockito.Mockito;
1617
import org.mockito.junit.jupiter.MockitoExtension;
@@ -33,9 +34,9 @@ class DnsPeerListProviderCreationTest {
3334
private static final String VALID_ENDPOINT = "VALID.ENDPOINT";
3435
private static final String INVALID_ENDPOINT = "INVALID_ENDPOINT_";
3536

36-
@Mock
37+
@Mock(mockMaker = MockMakers.INLINE)
3738
private DnsAddressEndpointGroupBuilder dnsAddressEndpointGroupBuilder;
38-
@Mock
39+
@Mock(mockMaker = MockMakers.INLINE)
3940
private DnsAddressEndpointGroup dnsAddressEndpointGroup;
4041

4142
private PeerForwarderConfiguration peerForwarderConfiguration;

data-prepper-plugins/armeria-common/src/test/java/org/opensearch/dataprepper/GrpcRequestExceptionHandlerTest.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,11 @@ public void testHandleBadRequestException() {
8585
final String exceptionMessage = UUID.randomUUID().toString();
8686
final BadRequestException badRequestExceptionWithMessage = new BadRequestException(exceptionMessage, new IOException());
8787

88-
final Status noMessageStatus = grpcRequestExceptionHandler.apply(requestContext, badRequestExceptionNoMessage, metadata);
88+
final Status noMessageStatus = grpcRequestExceptionHandler.apply(requestContext, Status.INVALID_ARGUMENT, badRequestExceptionNoMessage, metadata);
8989
assertThat(noMessageStatus.getCode(), equalTo(Status.Code.INVALID_ARGUMENT));
9090
assertThat(noMessageStatus.getDescription(), equalTo(Status.Code.INVALID_ARGUMENT.name()));
9191

92-
final Status messageStatus = grpcRequestExceptionHandler.apply(requestContext, badRequestExceptionWithMessage, metadata);
92+
final Status messageStatus = grpcRequestExceptionHandler.apply(requestContext, Status.INVALID_ARGUMENT, badRequestExceptionWithMessage, metadata);
9393
assertThat(messageStatus.getCode(), equalTo(Status.Code.INVALID_ARGUMENT));
9494
assertThat(messageStatus.getDescription(), equalTo(exceptionMessage));
9595

@@ -102,11 +102,11 @@ public void testHandleTimeoutException() {
102102
final String exceptionMessage = UUID.randomUUID().toString();
103103
final BufferWriteException timeoutExceptionWithMessage = new BufferWriteException(exceptionMessage, new TimeoutException(exceptionMessage));
104104

105-
final Status noMessageStatus = grpcRequestExceptionHandler.apply(requestContext, timeoutExceptionNoMessage, metadata);
105+
final Status noMessageStatus = grpcRequestExceptionHandler.apply(requestContext, Status.DEADLINE_EXCEEDED, timeoutExceptionNoMessage, metadata);
106106
assertThat(noMessageStatus.getCode(), equalTo(Status.Code.RESOURCE_EXHAUSTED));
107107
assertThat(noMessageStatus.getDescription(), equalTo(Status.Code.RESOURCE_EXHAUSTED.name()));
108108

109-
final Status messageStatus = grpcRequestExceptionHandler.apply(requestContext, timeoutExceptionWithMessage, metadata);
109+
final Status messageStatus = grpcRequestExceptionHandler.apply(requestContext, Status.DEADLINE_EXCEEDED, timeoutExceptionWithMessage, metadata);
110110
assertThat(messageStatus.getCode(), equalTo(Status.Code.RESOURCE_EXHAUSTED));
111111
assertThat(messageStatus.getDescription(), equalTo(exceptionMessage));
112112

@@ -123,7 +123,7 @@ public void testHandleTimeoutException() {
123123
public void testHandleArmeriaTimeoutException() {
124124
final RequestTimeoutException timeoutExceptionNoMessage = RequestTimeoutException.get();
125125

126-
final Status noMessageStatus = grpcRequestExceptionHandler.apply(requestContext, timeoutExceptionNoMessage, metadata);
126+
final Status noMessageStatus = grpcRequestExceptionHandler.apply(requestContext, Status.DEADLINE_EXCEEDED, timeoutExceptionNoMessage, metadata);
127127
assertThat(noMessageStatus.getCode(), equalTo(Status.Code.RESOURCE_EXHAUSTED));
128128
assertThat(noMessageStatus.getDescription(), equalTo(ARMERIA_REQUEST_TIMEOUT_MESSAGE));
129129

@@ -136,11 +136,11 @@ public void testHandleSizeOverflowException() {
136136
final String exceptionMessage = UUID.randomUUID().toString();
137137
final BufferWriteException sizeOverflowExceptionWithMessage = new BufferWriteException(exceptionMessage, new SizeOverflowException(exceptionMessage));
138138

139-
final Status noMessageStatus = grpcRequestExceptionHandler.apply(requestContext, sizeOverflowExceptionNoMessage, metadata);
139+
final Status noMessageStatus = grpcRequestExceptionHandler.apply(requestContext, Status.INVALID_ARGUMENT, sizeOverflowExceptionNoMessage, metadata);
140140
assertThat(noMessageStatus.getCode(), equalTo(Status.Code.RESOURCE_EXHAUSTED));
141141
assertThat(noMessageStatus.getDescription(), equalTo(Status.Code.RESOURCE_EXHAUSTED.name()));
142142

143-
final Status messageStatus = grpcRequestExceptionHandler.apply(requestContext, sizeOverflowExceptionWithMessage, metadata);
143+
final Status messageStatus = grpcRequestExceptionHandler.apply(requestContext, Status.INVALID_ARGUMENT, sizeOverflowExceptionWithMessage, metadata);
144144
assertThat(messageStatus.getCode(), equalTo(Status.Code.RESOURCE_EXHAUSTED));
145145
assertThat(messageStatus.getDescription(), equalTo(exceptionMessage));
146146

@@ -153,11 +153,11 @@ public void testHandleRequestCancelledException() {
153153
final String exceptionMessage = UUID.randomUUID().toString();
154154
final RequestCancelledException requestCancelledExceptionWithMessage = new RequestCancelledException(exceptionMessage);
155155

156-
final Status noMessageStatus = grpcRequestExceptionHandler.apply(requestContext, requestCancelledExceptionNoMessage, metadata);
156+
final Status noMessageStatus = grpcRequestExceptionHandler.apply(requestContext, Status.CANCELLED, requestCancelledExceptionNoMessage, metadata);
157157
assertThat(noMessageStatus.getCode(), equalTo(Status.Code.CANCELLED));
158158
assertThat(noMessageStatus.getDescription(), equalTo(Status.Code.CANCELLED.name()));
159159

160-
final Status messageStatus = grpcRequestExceptionHandler.apply(requestContext, requestCancelledExceptionWithMessage, metadata);
160+
final Status messageStatus = grpcRequestExceptionHandler.apply(requestContext, Status.CANCELLED, requestCancelledExceptionWithMessage, metadata);
161161
assertThat(messageStatus.getCode(), equalTo(Status.Code.CANCELLED));
162162
assertThat(messageStatus.getDescription(), equalTo(exceptionMessage));
163163

@@ -170,11 +170,11 @@ public void testHandleInternalServerException() {
170170
final String exceptionMessage = UUID.randomUUID().toString();
171171
final RuntimeException runtimeExceptionWithMessage = new RuntimeException(exceptionMessage);
172172

173-
final Status noMessageStatus = grpcRequestExceptionHandler.apply(requestContext, runtimeExceptionNoMessage, metadata);
173+
final Status noMessageStatus = grpcRequestExceptionHandler.apply(requestContext, Status.INTERNAL, runtimeExceptionNoMessage, metadata);
174174
assertThat(noMessageStatus.getCode(), equalTo(Status.Code.INTERNAL));
175175
assertThat(noMessageStatus.getDescription(), equalTo(Status.Code.INTERNAL.name()));
176176

177-
final Status messageStatus = grpcRequestExceptionHandler.apply(requestContext, runtimeExceptionWithMessage, metadata);
177+
final Status messageStatus = grpcRequestExceptionHandler.apply(requestContext, Status.INTERNAL, runtimeExceptionWithMessage, metadata);
178178
assertThat(messageStatus.getCode(), equalTo(Status.Code.INTERNAL));
179179
assertThat(messageStatus.getDescription(), equalTo(exceptionMessage));
180180

settings.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@ dependencyResolutionManagement {
3030
libs {
3131
version('slf4j', '2.0.6')
3232
library('slf4j-api', 'org.slf4j', 'slf4j-api').versionRef('slf4j')
33-
version('armeria', '1.29.0')
33+
version('armeria', '1.32.5')
3434
library('armeria-core', 'com.linecorp.armeria', 'armeria').versionRef('armeria')
3535
library('armeria-grpc', 'com.linecorp.armeria', 'armeria-grpc').versionRef('armeria')
3636
library('armeria-junit', 'com.linecorp.armeria', 'armeria-junit5').versionRef('armeria')
37-
version('grpc', '1.63.0')
37+
version('grpc', '1.70.0')
3838
library('grpc-inprocess', 'io.grpc', 'grpc-inprocess').versionRef('grpc')
39-
version('protobuf', '3.24.3')
39+
version('protobuf', '3.25.5')
4040
library('protobuf-core', 'com.google.protobuf', 'protobuf-java').versionRef('protobuf')
4141
library('protobuf-util', 'com.google.protobuf', 'protobuf-java-util').versionRef('protobuf')
4242
version('opentelemetry', '1.3.2-alpha')

0 commit comments

Comments
 (0)