CVE-2026-47873
Executive Summary
CVE-2026-47873 is a high‑severity vulnerability in the Spring Tools for Eclipse (Boot Dashboard Docker integration). The flaw causes container control ports to be bound to all host network interfaces (0.0.0.0) instead of the loopback interface (127.0.0.1). This exposes services such as debuggers, JMX, and the Docker API to any attacker who can reach the host over the network. With a CVSS base score of 8.0, the vulnerability allows remote, unauthenticated access to sensitive internal services, potentially leading to container takeover, data exfiltration, or lateral movement. No official patch exists as of the analysis date, but the issue can be mitigated by manual configuration changes.
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
CVSS Breakdown & Threat Level
| Metric | Value |
|---|---|
| CVSS Base Score | 8.0 (HIGH) |
| Attack Vector (AV) | Network (likely) |
| Attack Complexity (AC) | Low |
| Privileges Required (PR) | None |
| User Interaction (UI) | None |
| Scope (S) | Unchanged (or Changed – lower for container escapes) |
| Confidentiality Impact (C) | High |
| Integrity Impact (I) | High |
| Availability Impact (A) | High |
The exact vector is not disclosed, but the high score reflects full compromise potential without authentication.
Deep Dive & Mechanics
Spring Tools provides a Boot Dashboard in Eclipse that integrates with Docker to manage Spring Boot containers. During development, the dashboard starts containers with debug, JMX, or actuator ports mapped to the host. The insecure default binds these ports to 0.0.0.0 (all interfaces) rather than 127.0.0.1 (loopback). This means:
- Any machine on the same LAN or with network access to the host can connect to these ports.
- An attacker can interact with the Docker daemon API (port 2375/2376) if exposed, execute commands inside containers, or read sensitive application data.
- Common exposed ports include:
- 5005 (Java Debug Wire Protocol)
- 8080 (HTTP/Spring Boot Actuator)
- 9090 (JMX RMI)
- 2375/2376 (Docker REST API over TCP)
The vulnerability is a configuration error (CWE-668: Exposure of Resource to Wrong Sphere) rather than a code injection.
Vulnerable vs. Patched Code
Vulnerable (≤ 5.2.0)
In the Boot Dashboard launch configuration, container ports are bound to 0.0.0.0 by default, e.g.:
// Pseudo-code from Spring Tools internals
DockerContainerConfig config = new DockerContainerConfig();
config.setPortBindings(new String[]{"0.0.0.0:5005:5005"}); // Binds to all interfaces
Patched (none – manual fix)
Users must manually override the binding to loopback:
config.setPortBindings(new String[]{"127.0.0.1:5005:5005"}); // Restrict to loopback
Or set the Docker host environment variable DOCKER_HOST to use a Unix socket instead of TCP.
Exploitation & Lab Setup
Red Team (Offensive)
- Discover exposed ports
Scan the target host for common Spring Boot/Docker ports:
nmap -p 5005,8080,9090,2375,2376 192.168.1.100
- Interact with Docker API (if port 2375/2376 open):
curl http://192.168.1.100:2375/containers/json
curl -X POST http://192.168.1.100:2375/containers/create?image=malicious
- Exploit debug port (5005) for Remote Code Execution using JDB:
jdb -connect com.sun.jdi.SocketAttach:hostname=192.168.1.100,port=5005
- Exfiltrate sensitive data via JMX or actuator endpoints.
Blue Team (Defensive)
- Detect unexpected listening on 0.0.0.0:
ss -tlnp | grep -E '0.0.0.0:(5005|8080|9090|2375|2376)'
Monitor network connections to those ports from external IPs.
Honeypot: Set up a dummy container with fake secrets and log all access.
Indicators of Compromise (IOCs)
| Type | Indicator | Description |
|---|---|---|
| IP | 0.0.0.0:5005 or :2375 |
Container control ports bound to all interfaces |
| Network | Inbound connections to port 5005, 8080, 9090, 2375, 2376 from unexpected IPs | Remote access attempt |
| Process | java listening on 0.0.0.0:5005 |
Unsecured debug port |
| Docker | docker ps shows ports mapped to 0.0.0.0 |
Misconfigured port binding |
Detection Engineering
YARA Rule
rule CVE_2026_47873_SpringTools_ExposedPorts {
meta:
description = "Detects log entries indicating binding to 0.0.0.0 for Spring Boot Docker ports"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2026-47873"
severity = "high"
strings:
$s1 = "0.0.0.0:5005" nocase
$s2 = "0.0.0.0:8080" nocase
$s3 = "0.0.0.0:9090" nocase
$s4 = "0.0.0.0:2375" nocase
$s5 = "0.0.0.0:2376" nocase
condition:
any of ($s*)
}
Sigma Rule
title: CVE-2026-47873 - Spring Tools Exposes Docker Ports on All Interfaces
id: 4444d24e-7b4f-4f7d-9b1a-9c9b2c1d3e4f
status: experimental
description: Detects network connections to container control ports bound to 0.0.0.0
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-47873
author: Valters IT
date: 2025-04-10
logsource:
category: network_connection
product: windows
service: sysmon
detection:
selection:
Initiated: True
DestinationPort:
- 5005
- 8080
- 9090
- 2375
- 2376
SourceIp:
- '0.0.0.0'
DestinationIp: '0.0.0.0' # logs from bind
condition: selection
falsepositives:
- Legitimate remote debugging
- Admin intentionally exposing port
level: high
Suricata Rule
alert tcp any any -> any 5005,8080,9090,2375,2376 (msg:"CVE-2026-47873 - Possible Spring Tools exposed container port"; flow:to_client; content:"|0.0.0.0|"; offset:0; depth:7; classtype:attempted-admin; sid:1000001; rev:1;)
*Note: The Suricata rule above is a simplified signature; adjust byte patterns based on actual packet data.
Remediation & Mitigation
Immediate Workaround
- In Spring Tools, edit the Docker run configuration to bind ports to
127.0.0.1only. - Set environment variable
DOCKER_HOST=unix:///var/run/docker.sockto avoid TCP exposure.
- In Spring Tools, edit the Docker run configuration to bind ports to
Firewall Rules
Block inbound access to ports 5005, 8080, 9090, 2375, 2376 from untrusted networks.Network Segmentation
Run development tools on isolated VLANs with strict access controls.Upgrade (if future patch available)
Monitor Spring Tools releases for an official fix.
Valters IT – DevSecOps & Threat Intelligence