The JMS over HTTP Invocation Layer in JBossMQ, as implemented in HTTPServerILServlet.java in JBoss Application Server (AS) 4.x and earlier, does not properly restrict the classes that can be deserialized from the raw POST body. This allows remote attackers to execute arbitrary code or cause a denial of service (application crash or other impacts) via crafted serialized objects, due to insecure Java object deserialization.
PoC
id: CVE-2017-7504
info:
name: JBossMQ HTTP Invocation Layer (HTTPServerILServlet) - Unauthenticated Java Deserialization
author: Jayachandran
severity: critical
description: |
The JMS over HTTP Invocation Layer in JBossMQ, as implemented in HTTPServerILServlet.java in JBoss Application Server (AS) 4.x and earlier, does not properly restrict the classes that can be deserialized from the raw POST body. This allows remote attackers to execute arbitrary code or cause a denial of service (application crash or other impacts) via crafted serialized objects, due to insecure Java object deserialization.
remediation: |
Upgrade JBoss AS to a supported EAP version, or remove the jbossmq-httpil.sar deployment if JMS-over-HTTP is not required.
reference:
- https://github.com/vulhub/vulhub/blob/master/jboss/CVE-2017-7504/README.md
- https://nvd.nist.gov/vuln/detail/CVE-2017-7504
classification:
cvss-metrics: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2017-7504
cwe-id: CWE-502
epss-score: 0.41019
epss-percentile: 0.98587
cpe: cpe:2.3:a:redhat:jboss_application_server:4.0.5:*:*:*:*:*:*:*
metadata:
verified: true
max-request: 1
vendor: redhat
product: jboss_application_server
shodan-query: http.title:"JBoss"
fofa-query: app="JBoss"
tags: cve,cve2017,redhat,jboss,jbossmq,deserialization,rce,vkev
http:
- method: POST
path:
- "{{BaseURL}}/jbossmq-httpil/HTTPServerILServlet"
headers:
Content-Type: application/octet-stream
body: "{{base64_decode(\"rO0ABXQABWhlbGxv\")}}"
matchers-condition: and
matchers:
- type: word
part: body
words:
- "cannot be cast to org.jboss.mq.il.http.HTTPILRequest"
- "java.lang.ClassCastException"
condition: and
- type: status
status:
- 200
# digest: 4a0a00473045022100ccbaef61266465a75b1ba502f3c695e4b0e6544cdd110fe8882ddab6c30afbcb022076a662d82cf217e31a55f16f34427f97b53a6552aba47c583bd7c5abffa41559:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.