GHSA-3xgr-h5hq-7299: GeoIP processor disables SSL certificate validation when downloading databases
5.9
Basic Information
Technical Details
| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| org.opensearch.dataprepper.plugins:geoip-processor | maven | >= 2.7.0, < 2.12.2 | 2.12.2 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability is caused by a custom and insecure SSL implementation in the GeoIP processor of Data Prepper. The DBSource.initiateSSL() method was created to intentionally bypass SSL certificate and hostname verification during the download of GeoIP databases. This method was called by HttpDBDownloadService.initiateDownload(), which is responsible for fetching the database from a URL. This creates a Man-in-the-Middle (MITM) vulnerability, allowing an attacker to intercept the connection and provide a malicious GeoIP database. The patch addresses this by completely removing the initiateSSL() method and its call from HttpDBDownloadService.initiateDownload(), thereby ensuring that the standard and secure Java TLS implementation is used for all HTTPS connections. The primary vulnerable function is DBSource.initiateSSL() due to its insecure implementation, and HttpDBDownloadService.initiateDownload() is the function that triggers the vulnerability by calling it.
Vulnerable functions
org.opensearch.dataprepper.plugins.geoip.extension.databasedownload.DBSource.initiateSSLdata-prepper-plugins/geoip-processor/src/main/java/org/opensearch/dataprepper/plugins/geoip/extension/databasedownload/DBSource.java
org.opensearch.dataprepper.plugins.geoip.extension.databasedownload.HttpDBDownloadService.initiateDownloaddata-prepper-plugins/geoip-processor/src/main/java/org/opensearch/dataprepper/plugins/geoip/extension/databasedownload/HttpDBDownloadService.java