ID |
Product |
Version |
Vulnerability |
CVE-2019-25020
|
Scytl Secure Vote (sVote)
|
2.1
|
Unauthenticated REST Endpoints leading to Secure-Data-Manager admin configuration leak
|
Description
All specified Jax-RS REST endpoints in the application don't require authentication.
An example can be found in the following file:
evoting-solution-master/source-code/online-voting-secure-data-manager/secure-data-manager-backend/sdm-ws-rest/src/main/java/com/scytl/products/ov/sdm/ui/ws/rs/application/PreconfigurationResource.java
@RequestMapping(method = RequestMethod.POST, produces = "application/json")
@ResponseStatus(value = HttpStatus.CREATED)
@ApiOperation(value = "Get configuration", notes = "Service to retrieve the configuration of administration"
+ " boards and election events.", response = String.class)
public String createElectionEvent() throws IOException {
transactionInfoProvider.generate(tenantId, "", "");
secureLogger.log(Level.INFO, new LogContent.LogContentBuilder()
.logEvent(SdmSecureLogEvent.SDM_SYNCHRONIZING_WITH_AP)
.createLogInfo());
String result = null;
if (!isAdminPortalEnabled) {
LOGGER.info(
"The application is configured to not have connectivity to Admin Portal, " +
"check if this is the expected behavior");
secureLogger.log(Level.ERROR,
new LogContent.LogContentBuilder()
.logEvent(SdmSecureLogEvent.SDM_SYNCHRONIZATION_WITH_AP_FAILED)
.additionalInfo("err_desc",
"The application is configured to not have connectivity to Admin Portal, " +
"check if this is the expected behavior")
.createLogInfo());
}
// call to end point to download data from administration portal
else if (preconfigurationRepository.download(configFile)) {
// process the download data
result = preconfigurationRepository.readFromFileAndSave(configFile);
}
secureLogger.log(Level.INFO, new LogContent.LogContentBuilder()
.logEvent(SdmSecureLogEvent.SDM_SYNCHRONIZED_WITH_AP_SUCCESSFULLY)
.createLogInfo());
return result;
}
The admin portal is enabled by default:
evoting-solution-master/source-code/online-voting-secure-data-manager/secure-data-manager-backend/sdm-ws-rest/sdmConfig/admin_portal.properties:adminPortal.enabled=true
evoting-solution-master/source-code/online-voting-secure-data-manager/secure-data-manager-backend/secure-data-manager-services/src/main/java/com/scytl/products/ov/sdm/infrastructure/preconfiguration/PreconfigurationRepositoryImpl.java: @Value("${adminPortal.enabled:true}")
By sending a post request to the following api admin configurations can be recieved.:
/sdm-ws-rest/preconfiguration
Timeline
Date |
Event |
February 11 2020
|
Submitted vulnerability to vendor
|
February 13 2020
|
Submitted additional details to vendor
|
February 13 2020
|
Vendor response (nofix)
|
Credits
Name |
Team |
Anthony Schneiter
|
SUID
|
Jannis Kirschner
|
SUID
|