Skip to content

Commit 0ef26b2

Browse files
authored
Merge pull request #891 from amvanbaren/cve/issue-856
Fix server vulnerabilities
2 parents c03b96e + 9de95d0 commit 0ef26b2

File tree

3 files changed

+21
-23
lines changed

3 files changed

+21
-23
lines changed

server/build.gradle

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,8 @@ def versions = [
2222
java: '17',
2323
flyway: '9.19.1',
2424
springdoc: '2.1.0',
25-
spdx: '2.2.8',
26-
gcloud: '2.22.3',
25+
gcloud: '2.36.1',
2726
azure: '12.23.0',
28-
guava: '30.0-jre',
2927
junit: '5.7.1',
3028
testcontainers: '1.15.2',
3129
jackson: '2.15.2',
@@ -34,7 +32,7 @@ def versions = [
3432
bucket4j: '0.9.0',
3533
ehcache: '3.10.8',
3634
tika: '2.6.0',
37-
bouncycastle: '1.69',
35+
bouncycastle: '1.77',
3836
commons_lang3: '3.12.0',
3937
httpclient5: '5.2.1',
4038
jaxb_api: '2.3.1',
@@ -81,15 +79,14 @@ dependencies {
8179
implementation "org.springframework.security:spring-security-oauth2-jose"
8280
implementation "org.springframework.session:spring-session-jdbc"
8381
implementation "org.springframework.retry:spring-retry"
84-
implementation "org.bouncycastle:bcpkix-jdk15on:${versions.bouncycastle}"
82+
implementation "org.bouncycastle:bcpkix-jdk18on:${versions.bouncycastle}"
8583
implementation "org.ehcache:ehcache:${versions.ehcache}"
8684
implementation "com.giffing.bucket4j.spring.boot.starter:bucket4j-spring-boot-starter:${versions.bucket4j}"
8785
implementation "org.jobrunr:jobrunr-spring-boot-3-starter:${versions.jobrunr}"
8886
implementation "org.flywaydb:flyway-core:${versions.flyway}"
8987
implementation "com.google.cloud:google-cloud-storage:${versions.gcloud}"
9088
implementation "com.azure:azure-storage-blob:${versions.azure}"
9189
implementation "org.springdoc:springdoc-openapi-starter-webmvc-ui:${versions.springdoc}"
92-
implementation "com.google.guava:guava:${versions.guava}"
9390
implementation "com.fasterxml.jackson.core:jackson-core:${versions.jackson}"
9491
implementation "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson}"
9592
implementation "com.fasterxml.jackson.core:jackson-databind:${versions.jackson}"
@@ -101,11 +98,6 @@ dependencies {
10198
implementation "org.apache.commons:commons-lang3:${versions.commons_lang3}"
10299
implementation "org.apache.httpcomponents.client5:httpclient5:${versions.httpclient5}"
103100
implementation "org.apache.tika:tika-core:${versions.tika}"
104-
implementation("org.spdx:spdx-tools:${versions.spdx}") {
105-
exclude group: 'net.sf.saxon'
106-
exclude group: 'org.antlr', module: 'antlr'
107-
exclude group: 'org.apache.logging.log4j', module: 'log4j-slf4j-impl'
108-
}
109101
implementation "com.github.loki4j:loki-logback-appender:${versions.loki4j}"
110102
implementation "io.micrometer:micrometer-tracing"
111103
implementation "io.micrometer:micrometer-tracing-bridge-otel"
@@ -127,6 +119,12 @@ dependencies {
127119

128120
gatling "io.gatling:gatling-core:${versions.gatling}"
129121
gatling "io.gatling:gatling-app:${versions.gatling}"
122+
123+
constraints {
124+
implementation('org.eclipse.parsson:parsson:1.0.5') {
125+
because 'version 1.0.0 pulled from elasticsearch-java has CVE-2023-4043'
126+
}
127+
}
130128
}
131129

132130
jooq {

server/src/main/java/org/eclipse/openvsx/security/TokenService.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
import org.eclipse.openvsx.entities.AuthToken;
2121
import org.eclipse.openvsx.entities.UserData;
22-
import org.json.simple.JsonObject;
2322
import org.slf4j.Logger;
2423
import org.slf4j.LoggerFactory;
2524
import org.springframework.beans.factory.annotation.Autowired;
@@ -166,16 +165,16 @@ protected Pair<OAuth2AccessToken, OAuth2RefreshToken> refreshEclipseToken(AuthTo
166165
headers.setContentType(MediaType.APPLICATION_JSON);
167166
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
168167

169-
var data = new JsonObject();
170-
data.put("grant_type", "refresh_token");
171-
data.put("client_id", reg.getClientId());
172-
data.put("client_secret", reg.getClientSecret());
173-
data.put("refresh_token", token.refreshToken != null ? token.refreshToken : token.accessToken);
174-
175-
var request = new HttpEntity<String>(data.toJson(), headers);
176-
var restTemplate = new RestTemplate();
177168
var objectMapper = new ObjectMapper();
169+
var data = objectMapper.createObjectNode()
170+
.put("grant_type", "refresh_token")
171+
.put("client_id", reg.getClientId())
172+
.put("client_secret", reg.getClientSecret())
173+
.put("refresh_token", token.refreshToken != null ? token.refreshToken : token.accessToken);
174+
178175
try {
176+
var request = new HttpEntity<>(objectMapper.writeValueAsString(data), headers);
177+
var restTemplate = new RestTemplate();
179178
var response = restTemplate.postForObject(tokenUri, request, String.class);
180179
var root = objectMapper.readTree(response);
181180
var newTokenValue = root.get("access_token").asText();
@@ -188,7 +187,6 @@ protected Pair<OAuth2AccessToken, OAuth2RefreshToken> refreshEclipseToken(AuthTo
188187
var newToken = new OAuth2AccessToken(TokenType.BEARER, newTokenValue, issuedAt, expiresAt);
189188
var newRefreshToken = new OAuth2RefreshToken(newRefreshTokenValue, issuedAt);
190189
return Pair.of(newToken, newRefreshToken);
191-
192190
} catch (RestClientException exc) {
193191
logger.error("Post request failed with URL: " + tokenUri, exc);
194192
} catch (JsonProcessingException exc) {

server/src/main/java/org/eclipse/openvsx/storage/StorageMigration.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
********************************************************************************/
1010
package org.eclipse.openvsx.storage;
1111

12-
import org.apache.jena.ext.com.google.common.collect.Lists;
1312
import org.eclipse.openvsx.entities.FileResource;
1413
import org.eclipse.openvsx.repositories.RepositoryService;
1514
import org.slf4j.Logger;
@@ -25,6 +24,9 @@
2524
import org.springframework.web.client.RestTemplate;
2625

2726
import jakarta.persistence.EntityManager;
27+
28+
import java.util.ArrayList;
29+
import java.util.List;
2830
import java.util.Map;
2931
import java.util.concurrent.ConcurrentLinkedQueue;
3032
import java.util.concurrent.ScheduledFuture;
@@ -69,7 +71,7 @@ public void findResources(ApplicationStartedEvent event) {
6971
return;
7072
}
7173

72-
var migrations = Lists.newArrayList(STORAGE_DB, STORAGE_GOOGLE, STORAGE_AZURE);
74+
var migrations = new ArrayList<>(List.of(STORAGE_DB, STORAGE_GOOGLE, STORAGE_AZURE));
7375
migrations.remove(storageType);
7476
var migrationCount = new int[migrations.size()];
7577
for (var i = 0; i < migrations.size(); i++) {

0 commit comments

Comments
 (0)