Port 8180 is used by JBoss/WildFly application server instances when port 8080 is occupied (port offset configuration). JBoss uses port offsets to run multiple instances on one host – offset 100 shifts 8080 to 8180, 9990 to 10090, etc. Same security concerns as any Java EE application server.
Port Number
8180
Protocol
TCP
Service
JBoss Application Server HTTP
Range
IANA Registered (1024–49151)
Test for CVE-2017-12149 (should return 404, not 500 – 500 means vulnerable)
curl -s http://host:8180/invoker/readonly -o /dev/null -w '%{http_code}'Check if JMX console is exposed (should be 404 or 403)
curl -s http://host:8180/jmx-console/ -o /dev/null -w '%{http_code}'Identify JBoss by default page title
nmap -p 8180 --script http-title targetTest management console with common defaults (offset 100 from 9990)
curl -s http://host:10090/management -u admin:adminstandalone.sh -Djboss.socket.binding.port-offset=100
curl http://localhost:8180/myapp/
/opt/wildfly/bin/jboss-cli.sh --connect controller=localhost:10090JBoss Application Server was created by Marc Fleury in 1999 as the first free Java EE application server. Red Hat acquired JBoss in 2006. WildFly (the community name since 2013) introduced socket binding port offsets to run multiple instances on one host – common in development and legacy production environments where separate VMs per instance was cost-prohibitive. JBoss's history of RCE vulnerabilities (invoker servlets, deserialization, JMX console) makes any exposed instance high-risk.
How do I check if my JBoss is vulnerable to deserialization attacks?
Run: curl -s http://host:8180/invoker/readonly. If it returns HTTP 500 (not 404), the endpoint exists and is likely vulnerable to CVE-2017-12149. Also check: /invoker/JMXInvokerServlet, /invoker/EJBInvokerServlet. Fix: remove invoker-service.xml from deploy/, or upgrade to WildFly 10+ which removed these servlets entirely. For immediate mitigation: block /invoker/* paths in your reverse proxy.
Should I still use JBoss port offsets in 2024+?
No. Use containers (Docker/Kubernetes) instead – each instance gets its own port namespace, proper isolation, and independent scaling. Port offsets were a workaround for bare-metal/VM deployments running multiple instances. They make monitoring confusing (port 10090 vs 9990), increase attack surface, and complicate firewall rules. Migrate to one-instance-per-container with standard ports.