CVE-2026-12228
Full vulnerability record from the local CVENow database.
Description
A stored cross-site scripting (XSS) vulnerability exists in the `POST /api/prompts/share` endpoint of parisneo/lollms (latest version). The endpoint stores attacker-controlled `prompt_content` into `DBDirectMessage.content` without server-side sanitization. When a victim opens the direct message (DM) thread, the message is rendered by the DM UI through `MessageContentRenderer`, which uses `v-html` to insert rendered HTML into the DOM. The frontend sanitizer, which is regex-based, fails to comprehensively sanitize attacker-controlled HTML, allowing malicious payloads to execute in the victim's browser context. This vulnerability enables any authenticated user to send a malicious prompt-share message to another user's inbox, leading to arbitrary JavaScript execution, authenticated actions as the victim, exposure of same-origin application data, and potential account takeover.
View original CVE JSON
{
"id": "CVE-2026-12228",
"sourceIdentifier": "[email protected]",
"published": "2026-07-18T21:17:03.040",
"lastModified": "2026-10-24T20:10:00.137",
"vulnStatus": "Analyzed",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "A stored cross-site scripting (XSS) vulnerability exists in the `POST /api/prompts/share` endpoint of parisneo/lollms (latest version). The endpoint stores attacker-controlled `prompt_content` into `DBDirectMessage.content` without server-side sanitization. When a victim opens the direct message (DM) thread, the message is rendered by the DM UI through `MessageContentRenderer`, which uses `v-html` to insert rendered HTML into the DOM. The frontend sanitizer, which is regex-based, fails to comprehensively sanitize attacker-controlled HTML, allowing malicious payloads to execute in the victim's browser context. This vulnerability enables any authenticated user to send a malicious prompt-share message to another user's inbox, leading to arbitrary JavaScript execution, authenticated actions as the victim, exposure of same-origin application data, and potential account takeover."
},
{
"lang": "es",
"value": "Una vulnerabilidad de cross-site scripting (XSS) almacenado existe en el endpoint ’POST /api/prompts/share’ de parisneo/lollms (última versión). El endpoint almacena ’prompt_content’ controlado por el atacante en ’DBDirectMessage.content’ sin sanitización del lado del servidor. Cuando una víctima abre el hilo del mensaje directo (DM), el mensaje es renderizado por la UI del DM a través de ’MessageContentRenderer’, que usa ’v-html’ para insertar HTML renderizado en el DOM. El sanitizador de frontend, que está basado en expresiones regulares, falla en sanitizar de manera exhaustiva el HTML controlado por el atacante, permitiendo que cargas útiles maliciosas se ejecuten en el contexto del navegador de la víctima. Esta vulnerabilidad permite a cualquier usuario autenticado enviar un mensaje malicioso de compartir prompt a la bandeja de entrada de otro usuario, lo que lleva a la ejecución arbitraria de JavaScript, acciones autenticadas como la víctima, exposición de datos de aplicación del mismo origen y potencial toma de control de la cuenta."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "parisneo",
"product": "parisneo/lollms",
"versions": [
{
"version": "unspecified",
"lessThanOrEqual": "latest",
"versionType": "custom",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Primary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N",
"baseScore": 5.4,
"baseSeverity": "MEDIUM",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "LOW",
"userInteraction": "REQUIRED",
"scope": "CHANGED",
"confidentialityImpact": "LOW",
"integrityImpact": "LOW",
"availabilityImpact": "NONE"
},
"exploitabilityScore": 2.3,
"impactScore": 2.7
}
],
"cvssMetricV30": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "3.0",
"vectorString": "CVSS:3.0/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N",
"baseScore": 8.7,
"baseSeverity": "HIGH",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "LOW",
"userInteraction": "REQUIRED",
"scope": "CHANGED",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"availabilityImpact": "NONE"
},
"exploitabilityScore": 2.3,
"impactScore": 5.8
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-07-20T15:11:54.496213Z",
"id": "CVE-2026-12228",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "no"
},
{
"technicalImpact": "total"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-79"
}
]
}
],
"configurations": [
{
"nodes": [
{
"operator": "OR",
"negate": false,
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:a:lollms:lollms:*:*:*:*:*:*:*:*",
"versionEndIncluding": "2.1.0",
"matchCriteriaId": "7118851E-5C3C-499B-BBB5-0327B7FD85AF"
}
]
}
]
}
],
"references": [
{
"url": "https://huntr.com/bounties/25623635-5ceb-4062-8289-02089e6d97c1",
"source": "[email protected]",
"tags": [
"Exploit",
"Third Party Advisory"
]
},
{
"url": "https://huntr.com/bounties/25623635-5ceb-4062-8289-02089e6d97c1",
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"tags": [
"Exploit",
"Third Party Advisory"
]
}
]
}