CVE-2023-25570
Executive Summary
CVE-2023-25570 is an access control vulnerability affecting Apollo, a configuration management system, in versions prior to 2.1.0. The flaw resides in the built-in Eureka service, which lacks authentication when the apollo-configservice component is exposed to the internet — a configuration that the vendor explicitly does not recommend. An unauthenticated remote attacker who can reach the Eureka endpoint can register malicious instances of apollo-configservice and apollo-adminservice, potentially hijacking service discovery and redirecting clients to attacker-controlled endpoints. The vulnerability carries a CVSS score of 7.5 (High) and has no known active exploitation in the wild as of the EPSS data (0.00823, 54th percentile). The vendor has remediated the issue in version 2.1.0 by adding login authentication to the Eureka service.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
Apollo is a distributed configuration management system widely used in microservices architectures. Its architecture relies on a service discovery mechanism to coordinate communication between components. Specifically, the system embeds a Eureka service (Netflix's service discovery server) within apollo-configservice. This built-in Eureka instance is responsible for registering and locating both apollo-configservice and apollo-adminservice nodes.
Prior to version 2.1.0, the built-in Eureka service had no authentication mechanism enabled by default. This means that any HTTP client capable of reaching the Eureka endpoint could interact with it without credentials. The Eureka REST API permits clients to register, renew, cancel, and query service instances. For example, the standard registration endpoint accepts a POST request containing instance metadata (application name, hostname, IP address, port, health check URL, etc.) and adds that instance to the service registry.
The vulnerability class is missing authentication for a critical function — the service registry. Because Eureka acts as the source of truth for service locations, an attacker who can write to it can control which instances the other Apollo components and connected clients discover and connect to.
The attack surface is limited to deployments where apollo-configservice is reachable from the internet (or an untrusted network). In a default, properly segmented deployment, this service is internal-only. The vendor explicitly states that exposing apollo-configservice to the internet is not recommended, which indicates the intended trust boundary was internal network access.
The NVD description does not provide code-level details such as specific Java classes, REST endpoints, or configuration file names. Technical details are therefore limited to the vulnerability class and the architectural role of Eureka. No CWE was assigned in the provided data, but the mechanism aligns with CWE-306 (Missing Authentication for Critical Function). We note that the lack of authentication is the root cause; there is no evidence of an access-control bypass or authorization flaw — the flaw is the complete absence of credential checks.
Exploitation Scenarios
Preconditions: The target deployment has apollo-configservice exposed to an untrusted network (e.g., the internet) on a reachable port. The built-in Eureka service is accessible on that interface.
Reconnaissance/Target Identification: An attacker scans for exposed Apollo instances. The presence of
apollo-configservicemay be identified via HTTP fingerprinting — the application responds with characteristic headers or content on standard ports (typically 8080), or via the Eureka dashboard endpoint which serves an HTML page listing registered applications. Shodan-style queries such as"apollo-configservice"or known Eureka banner strings can locate candidate targets. No public PoC is available; the attack chain is inferred from the vulnerability class.Triggering the Flaw: The attacker sends an unauthenticated HTTP request to the Eureka REST registration endpoint. The registration API accepts XML or JSON payloads and does not require any session cookie, API key, or Basic Auth header. The attacker submits a new application instance entry that mirrors the legitimate
apollo-configserviceorapollo-adminserviceapplication names.Payload/Execution Method: At the vulnerability-class level, the payload is a crafted service-registration request. For Eureka, this would nominally include instance metadata: application name, instance ID, hostname, port (e.g.,
80or an attacker-chosen port), and a health check URL pointing to the attacker's server. Because authentication is absent, the registry accepts the entry as legitimate. The attacker can also send heartbeats (renewal requests) to keep the malicious registration active and prevent expiration.Post-Exploitation Impact: Once the malicious instances are registered, the following impact chain unfolds:
- Client Redirection: Apollo clients (applications pulling configuration) query the Eureka registry to find
apollo-configservice. They may be directed to the attacker's server instead of the legitimate node. - Configuration Theft: The attacker's impersonated
apollo-configservicecan serve malicious configuration values, or proxy requests back to the real service while logging credentials, secrets, and connection strings contained in the configuration. - Admin Service Compromise: By faking
apollo-adminservice, the attacker could receive configuration publication requests, potentially allowing them to push altered configuration to connected clients, causing denial of service (by serving invalid config) or broader supply-chain compromise of the application fleet.
- Client Redirection: Apollo clients (applications pulling configuration) query the Eureka registry to find
The realistic attack chain is a service-discovery poisoning attack leading to man-in-the-middle positioning on configuration distribution.
Impact Assessment
The CVSS score of 7.5 (High) reflects the potential for significant confidentiality impact, though the exact vector string was not supplied and we derived a plausible vector consistent with the score (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N). Notably, the integrity and availability impact of the attack may be understated by this vector — by controlling service registration, an attacker can also disrupt service discovery (denial of service) and serve tampered configuration (integrity loss). These additional impacts are not captured in our derived vector.
Affected Systems: All Apollo deployments running version < 2.1.0 with apollo-configservice reachable from an untrusted network.
Business Impact: For enterprises, this vulnerability enables:
- Data Breach: Exposure of application secrets, database credentials, third-party API keys stored in configuration.
- Operational Disruption: An attacker who registers a non-functional instance can cause clients to fail configuration retrieval, taking applications offline.
- Supply-Chain Risk: Malicious configuration injection can be used to alter downstream application behavior, potentially distributing malware or enabling lateral movement into connected systems.
Blast Radius: Scope: Unchanged — the flaw does not cross trust boundaries between authorization scopes. The blast radius is contained to the Apollo configuration ecosystem and any applications that trust its configuration output.
Detection Guidance
The following detection content is designed to flag unauthenticated access to Eureka registration endpoints and anomalous service registrations. Rules rely on default Eureka REST patterns.
Sigma Rule
title: Unauthenticated Eureka Service Registration
status: experimental
description: Detects HTTP POST requests to Eureka registration endpoint without authentication, indicating potential CVE-2023-25570 exploitation.
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: POST
cs-uri-path|startswith: /eureka/apps/
condition: selection
level: high
falsepositives:
- Legitimate internal Eureka client registration
tags:
- attack.t1190
- cve.2023.25570
YARA Rule
rule CVE_2023_25570_Eureka_Unauth_Registration
{
meta:
author = "valtersit.com"
description = "Detects unauthenticated Eureka service registration payloads"
date = "2024-01-01"
cve = "CVE-2023-25570"
strings:
$app_tag = /<application>|<app>/
$instance_tag = /<instance>/
$uri = /\/eureka\/apps\/.{1,30}//
condition:
uint16(0) == 0x3c3c or $uri and $app_tag and $instance_tag
// 0x3c3c decodes to '<<' in ASCII (XML declaration start) — fallback for payload
}
Suricata IDS Rule
alert http any any -> $APOLLO_SERVERS any (msg:"CVE-2023-25570 - Unauthenticated Eureka Registration Attempt"; flow:to_server,established; http.method; content:"POST"; http.uri; content:"/eureka/apps/"; nocase; classtype:attempted-admin; sid:2023255701; rev:1;)
Elastic Detection
sequence by source.ip with maxspan=5m
[ network where network.protocol == "http" and http.request.method == "POST"
and http.request.uri like "*eureka/apps*" ]
[ network where network.protocol == "http" and http.response.status_code == 200
and http.request.uri like "*eureka/apps*" ]
Splunk SPL Query
index=web sourcetype=access_combined
| where method="POST" AND uri_path LIKE "%/eureka/apps/%"
| table _time, clientip, method, uri_path, status
| stats count by clientip, uri_path
| where count > 1
| eval alert="Potential unauthenticated Eureka registration (CVE-2023-25570)"
Wazuh OSSEC Rule
<group name="eureka,">
<rule id="100257" level="10">
<decoded>
<match>POST /eureka/apps/</match>
</decoded>
<description>CVE-2023-25570: Unauthenticated Eureka service registration attempt</description>
<group>access_control,</group>
</rule>
</group>
Mitigation & Patch Guidance
Patch Confidence: 2/4 — CLAIMED — single source claims patch (not independently confirmed). The CNA states that login authentication was added in version 2.1.0, but this has not been independently verified against release notes or code commits.
Immediate Mitigations (until patched):
- Disable internet exposure: Ensure
apollo-configserviceis not reachable from the internet or any untrusted network. Apply network-level ACLs or firewall rules to block inbound access to the Eureka port from external sources. - Network segmentation: Place Apollo components in a dedicated internal network segment with strict egress controls to prevent lateral movement even if compromised.
- Monitor access: Activate the detection rules above to log and alert on any POST requests to
/eureka/apps/endpoints from unexpected source IPs.
Patch/Upgrade Steps:
- Upgrade Apollo to version 2.1.0 or later, where Eureka login authentication is enabled by default. Verify the update in a staging environment before production.
- After upgrade, confirm that Eureka now requires credentials by testing an unauthenticated POST request and validating it is rejected.
- Review the vendor release notes for version 2.1.0 for any related configuration changes.
Long-Term Hardening:
- Never expose configuration management services to the internet; if remote access is needed, use a VPN or bastion host.
- Enable and enforce authentication on all management interfaces, including Eureka.
- Implement regular vulnerability scanning on all components of the Apollo deployment.
- Subscribe to vendor security advisories to receive timely patch notifications.
References
- NVD Entry for CVE-2023-25570: https://nvd.nist.gov/vuln/detail/CVE-2023-25570
- Apollo Project Official Repository (release notes for 2.1.0): https://github.com/apolloconfig/apollo — verify the fix commit.
- CNA Advisory (source of patch claim): referred via NVD CVE metadata.
- CISA KEV Catalog — not listed (no evidence of exploitation in the wild).
- EPSS data for CVE-2023-25570: https://www.first.org/epss/api — score 0.00823, 54.0% percentile.
Threat Actor Campaigns: No known campaigns or exploit-in-the-wild evidence exists as of this report. The EPSS score (0.00823) indicates a very low but non-zero probability of exploitation in the next 30 days, ranked at the 54th percentile. The lack of public PoCs and the requirement for a non-recommended deployment configuration likely suppresses active exploitation. However, the high CVSS score and the value of configuration data in enterprise environments make this a target of interest for future threat actors.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.