RMI Service Enumeration
rmi-service-enumeration is a high severity check in the
network category, written in java.
Its source is templates/network/rmi/RmiServiceEnumeration.java in
cert-x-gen-templates.
What it checks
Section titled “What it checks”Detects exposed Java RMI registries and enumerates bound service names via native RMI protocol. An unauthenticated RMI registry with list() access is a critical pre-condition for deserialization attacks (ysoserial gadget chains) and leaks internal service topology.
Header
Section titled “Header”| Field | Value |
|---|---|
| Id | rmi-service-enumeration |
| Severity | high |
| Language | java |
| Category | network |
| Author | CERT-X-GEN Security Team |
| Template version | not recorded |
| Confidence | 90 |
| CVSS | not recorded |
| Weakness | CWE-306 |
| Tags | java, rmi, deserialization, enumeration, network, registry |
| Target kind | not recorded |
| Oracle | not recorded |
References
Section titled “References”Declared in the header. cxg parses @references and then discards it, and
nothing at scan time reads it, so this is the only place the links a
template cites are surfaced.
- https://docs.oracle.com/javase/8/docs/technotes/guides/rmi/index.html
- https://github.com/frohoff/ysoserial
- https://owasp.org/www-community/vulnerabilities/Unsafe_use_of_Reflection
Run it
Section titled “Run it”To see what the copy on your machine says about itself, and to confirm it is installed at all:
cxg template info rmi-service-enumerationThe id it prints is the one to pass anywhere a template is selected. See
cxg template for the rest of
the subcommand, Scan a target for running
a scan, and
A match is not a finding for how
to read what comes back.
Related
Section titled “Related”- Template catalog is the whole corpus.
- network is the rest of this category.
- Templates by weakness class groups checks by the defect they look for.
- Contribute a template is the route from a check you needed and could not find to a merged one.

