Description (en)
0day Rubbish Research Team is publicly disclosing a vulnerability in
Lightstreamer Server 7.4.8 build 3506 (with JMS Extender 2.1.0).
Type: unauthenticated JMX inspection console allowing an anonymous caller to
invoke any MBean operation, reaching jvmtiAgentLoad on
com.sun.management:type=DiagnosticCommand to load and run a native agent
library inside the broker JVM (CWE-306, CWE-345, CWE-20, CWE-250, CWE-1188)
Scoring. This finding is dual-scored on one documented delivery precondition,
and both figures are published rather than a single headline number:
- PRIMARY, 8.1 High, CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H. This is the
conservative figure for an attacker with network access only: the agent
library must be delivered to a filesystem path by means outside this endpoint.
- CONDITIONAL, 9.8 Critical, CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. This
is the shipped-default exposure where the precondition is ALREADY satisfied,
that is a native shared object is already reachable at a filesystem path the
attacker names. Exploitation is then one deterministic HTTP request. The 9.8
figure is conditional, not the primary rating, and is not the headline.
Impact: native code execution inside the Lightstreamer JVM as the service
process, inheriting that process's full identity. In the verified deployment the
process ran as uid=0(root), so the executed commands ran as root; root is not
claimed to be a factory-mandated identity, it is whatever account launched the
service. The shipping configuration sets <jmxtree_enabled>Y</jmxtree_enabled>
and <dashboard><public>Y</public> even though the adjacent comments claim the
default is N, and the only remaining check is a Referer header matching the
target host, which any HTTP client forges.
Authentication: unauthenticated (no credential of any kind).
Verification boundary, stated plainly. We verified the MBean-invocation and
native-code-execution legs against a research-host deployment reached over
loopback (HTTP 200 with "return code: 0", marker files recording uid=0(root),
and id/whoami commands chosen by the HTTP client at send time). The native
agent library, however, was already present on disk, placed beforehand over an
authenticated root session. jvmtiAgentLoad takes a filesystem path and fetches
nothing (http:// and file:// were both treated as literal strings), so the
fully remote chain including payload delivery is NOT demonstrated by this
advisory; what is proven unauthenticated is the request leg, not the delivery
leg.
Full technical analysis and a reproducible proof-of-concept:
https://0day-rubbish.com/blog/lightstreamer-unauth-jmx-jvmti-agentload-rce
Project archive (ongoing disclosure series):
https://github.com/Exploit-Garbage/0day-Rubbish
The vendor has been notified through its published security contact. No vulnerability identifier has been assigned to
this finding yet.
--
0day Rubbish Research Team
disclosure () 0day-rubbish com
https://0day-rubbish.com
_______________________________________________
Sent through the Full Disclosure mailing list
https://nmap.org/mailman/listinfo/fulldisclosure
Web Archives & RSS: https://seclists.org/fulldisclosure/
Raw JSON
{
"containers": {
"cna": {
"affected": [
{
"product": "Lightstreamer Server",
"vendor": "unknown",
"versions": [
{
"status": "affected",
"version": "unknown"
}
]
}
],
"credits": [
{
"lang": "en",
"type": "finder",
"value": "disclosure via Fulldisclosure"
}
],
"descriptions": [
{
"lang": "en",
"value": "0day Rubbish Research Team is publicly disclosing a vulnerability in\nLightstreamer Server 7.4.8 build 3506 (with JMS Extender 2.1.0).\n\nType: unauthenticated JMX inspection console allowing an anonymous caller to\ninvoke any MBean operation, reaching jvmtiAgentLoad on\ncom.sun.management:type=DiagnosticCommand to load and run a native agent\nlibrary inside the broker JVM (CWE-306, CWE-345, CWE-20, CWE-250, CWE-1188)\n\nScoring. This finding is dual-scored on one documented delivery precondition,\nand both figures are published rather than a single headline number:\n- PRIMARY, 8.1 High, CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H. This is the\n conservative figure for an attacker with network access only: the agent\n library must be delivered to a filesystem path by means outside this endpoint.\n- CONDITIONAL, 9.8 Critical, CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. This\n is the shipped-default exposure where the precondition is ALREADY satisfied,\n that is a native shared object is already reachable at a filesystem path the\n attacker names. Exploitation is then one deterministic HTTP request. The 9.8\n figure is conditional, not the primary rating, and is not the headline.\n\nImpact: native code execution inside the Lightstreamer JVM as the service\nprocess, inheriting that process's full identity. In the verified deployment the\nprocess ran as uid=0(root), so the executed commands ran as root; root is not\nclaimed to be a factory-mandated identity, it is whatever account launched the\nservice. The shipping configuration sets <jmxtree_enabled>Y</jmxtree_enabled>\nand <dashboard><public>Y</public> even though the adjacent comments claim the\ndefault is N, and the only remaining check is a Referer header matching the\ntarget host, which any HTTP client forges.\n\nAuthentication: unauthenticated (no credential of any kind).\n\nVerification boundary, stated plainly. We verified the MBean-invocation and\nnative-code-execution legs against a research-host deployment reached over\nloopback (HTTP 200 with \"return code: 0\", marker files recording uid=0(root),\nand id/whoami commands chosen by the HTTP client at send time). The native\nagent library, however, was already present on disk, placed beforehand over an\nauthenticated root session. jvmtiAgentLoad takes a filesystem path and fetches\nnothing (http:// and file:// were both treated as literal strings), so the\nfully remote chain including payload delivery is NOT demonstrated by this\nadvisory; what is proven unauthenticated is the request leg, not the delivery\nleg.\n\nFull technical analysis and a reproducible proof-of-concept:\n https://0day-rubbish.com/blog/lightstreamer-unauth-jmx-jvmti-agentload-rce\n\nProject archive (ongoing disclosure series):\n https://github.com/Exploit-Garbage/0day-Rubbish\n\nThe vendor has been notified through its published security contact. No vulnerability identifier has been assigned to\nthis finding yet.\n\n--\n0day Rubbish Research Team\ndisclosure () 0day-rubbish com\nhttps://0day-rubbish.com\n_______________________________________________\nSent through the Full Disclosure mailing list\nhttps://nmap.org/mailman/listinfo/fulldisclosure\nWeb Archives & RSS: https://seclists.org/fulldisclosure/"
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-1188",
"description": "CWE-1188",
"lang": "en",
"type": "CWE"
},
{
"cweId": "CWE-20",
"description": "CWE-20",
"lang": "en",
"type": "CWE"
},
{
"cweId": "CWE-250",
"description": "CWE-250",
"lang": "en",
"type": "CWE"
},
{
"cweId": "CWE-306",
"description": "CWE-306",
"lang": "en",
"type": "CWE"
},
{
"cweId": "CWE-345",
"description": "CWE-345",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-02T04:57:33Z",
"orgId": "4e2abfbf-4a2a-4b76-a4e0-d77c18ba156c",
"shortName": "VULNARCHIVE"
},
"references": [
{
"tags": [
"technical-description",
"exploit"
],
"url": "https://vuln.freearchive.org/archive/full-disclosure/2026/Sep/76"
},
{
"tags": [
"technical-description"
],
"url": "https://seclists.org/fulldisclosure/2026/Sep/76"
},
{
"url": "https://0day-rubbish.com"
},
{
"url": "https://0day-rubbish.com/blog/lightstreamer-unauth-jmx-jvmti-agentload-rce"
},
{
"url": "https://github.com/Exploit-Garbage/0day-Rubbish"
},
{
"url": "https://nmap.org/mailman/listinfo/fulldisclosure"
},
{
"url": "https://seclists.org/fulldisclosure/"
}
],
"source": {
"defect": [
"https://seclists.org/fulldisclosure/2026/Sep/76"
],
"discovery": "EXTERNAL"
},
"title": "[0day-rubbish] Lightstreamer Server 7.4.8 Unauthenticated JMX jvmtiAgentLoad native code execution (8.1)",
"x_gcve": [
{
"recordType": "advisory",
"relationships": [],
"vulnId": "GCVE-1988-2026-0428",
"x_vulnarchive": {
"archiveUrl": "https://vuln.freearchive.org/archive/full-disclosure/2026/Sep/76",
"automated": true,
"contentSha256": "af37376d816e13e6b5bf8b6fcf305fb28809a5e1aeabc0bb9cbb83dd790ded8f",
"evidenceScore": 11,
"messageId": "",
"originalUrl": "https://seclists.org/fulldisclosure/2026/Sep/76",
"policy": "vulnarchive-1",
"sourceFormat": "text/html",
"sourcePublishedAt": "2026-09-23T04:54:43Z"
}
}
]
}
},
"cveMetadata": {
"assignerOrgId": "4e2abfbf-4a2a-4b76-a4e0-d77c18ba156c",
"assignerShortName": "VULNARCHIVE",
"datePublished": "2026-10-02T04:57:33Z",
"dateUpdated": "2026-10-02T04:57:33Z",
"state": "PUBLISHED",
"vulnId": "GCVE-1988-2026-0428"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}