CVE-2026-102608
ZoneMinder es una aplicación de software libre y de código abierto para circuito cerrado de televisión. Antes de la versión 1.38.3, downloadEvents() envuelve manualmente un valor de Name de un monitor entre comillas simples en lugar de usar escapeshellarg() antes de colocarlo en comandos de shell cuando un usuario con permiso monitor-create o monitor-edit almacena un Name de monitor que contiene metacaracteres de shell y un usuario con permiso Events View exporta los eventos de ese monitor.
Leer descripción completaMostrar menos
En este mecanismo de ataque, el Name de monitor almacenado llega tanto al comando de concatenación de ffmpeg como al comando de archivado tar o zip y escapa del entrecomillado manual. Se ejecutan comandos arbitrarios como el usuario del servidor web. Este problema está corregido en la versión 1.38.3.
Traducción automática del texto original de NVD (en inglés).
CVSS
- Puntuación base
- 9
- Versión
- 3.1
- Vector
- CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días
- 0.29 %
- Percentil entre todas las CVEs puntuadas
- 20
- Fecha de la puntuación
- 20/10/2026
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
Técnicas ATT&CK
Cómo se explota esta vulnerabilidad y qué consigue el atacante, en el lenguaje de MITRE ATT&CK.
- Explotación
T1203Exploitation for Client Executionexecution85 % - Impacto principal
T1059Command and Scripting Interpreterexecution90 %
El vector CVSS indica UI:R (requiere interacción del usuario que exporta eventos) y CWE-78; el texto confirma ejecución arbitraria de comandos como usuario del servidor web.
Inferido por nuestro agente de análisis a partir de la descripción oficial, el vector CVSS y la CWE, y comprobado por un supervisor. Puede contener errores.
Mitigaciones ATT&CK que cubren estas técnicas
Tecnologías afectadas (1)
⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.
CWE
- CWE-78
Referencias
Mostrar las 6 referencias
- https://github.com/ZoneMinder/zoneminder/commit/2de2ae44a1d751bad4b020c5573b2d58c59c1525
- https://github.com/ZoneMinder/zoneminder/commit/b3a7c05f079c87badf4b0ce052da0acfd4047a4b
- https://github.com/ZoneMinder/zoneminder/commit/b5605e01c14354fc8e2dcae8cefd90c3674880d9
- https://github.com/ZoneMinder/zoneminder/releases/tag/1.38.3
- https://github.com/ZoneMinder/zoneminder/security/advisories/GHSA-88m4-hrgp-m9v3
- https://www.scriptkittens.com/blog/two-sinks-one-shell
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-102608",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-102608",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "total"
}
],
"version": "2.0.3",
"timestamp": "2026-10-19T15:41:30.335802Z"
}
}
],
"cvssMetricV31": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"cvssData": {
"scope": "CHANGED",
"version": "3.1",
"baseScore": 9,
"attackVector": "NETWORK",
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H",
"integrityImpact": "HIGH",
"userInteraction": "REQUIRED",
"attackComplexity": "LOW",
"availabilityImpact": "HIGH",
"privilegesRequired": "LOW",
"confidentialityImpact": "HIGH"
},
"impactScore": 6,
"exploitabilityScore": 2.3
}
]
},
"affected": [
{
"source": "security-advisories@github.com",
"affectedData": [
{
"vendor": "ZoneMinder",
"product": "zoneminder",
"versions": [
{
"status": "affected",
"version": ">= 1.37.48, < 1.38.3"
}
]
}
]
}
],
"published": "2026-10-16T20:17:17.253",
"references": [
{
"url": "https://github.com/ZoneMinder/zoneminder/commit/2de2ae44a1d751bad4b020c5573b2d58c59c1525",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/ZoneMinder/zoneminder/commit/b3a7c05f079c87badf4b0ce052da0acfd4047a4b",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/ZoneMinder/zoneminder/commit/b5605e01c14354fc8e2dcae8cefd90c3674880d9",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/ZoneMinder/zoneminder/releases/tag/1.38.3",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/ZoneMinder/zoneminder/security/advisories/GHSA-88m4-hrgp-m9v3",
"source": "security-advisories@github.com"
},
{
"url": "https://www.scriptkittens.com/blog/two-sinks-one-shell",
"source": "security-advisories@github.com"
}
],
"vulnStatus": "Deferred",
"weaknesses": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"description": [
{
"lang": "en",
"value": "CWE-78"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "ZoneMinder is a free, open source closed-circuit television software application. Prior to 1.38.3, downloadEvents() manually wraps a monitor Name value in single quotes instead of using escapeshellarg() before placing it in shell commands when a user with monitor-create or monitor-edit permission stores a monitor Name containing shell metacharacters and a user with Events View permission exports that monitor's events. In this attack mechanism, the stored monitor Name reaches both the ffmpeg concatenation command and the tar or zip archive command and breaks out of manual quoting. Arbitrary commands execute as the web server user. This issue is fixed in version 1.38.3."
}
],
"lastModified": "2026-10-19T17:17:00.277",
"sourceIdentifier": "security-advisories@github.com"
}