CVE-2026-107611
An out-of-bounds read vulnerability in the ZRLE decoder of GlavSoft TightVNC Viewer for Windows before 2.8.88 allows a malicious or compromised VNC server to read heap memory beyond the palette allocation and crash the viewer by sending ZRLE-encoded tiles whose palette indices exceed the declared palette size. readPaletteRleTile() and readPackedPaletteTile() use the attacker-supplied index to look up colours without validating it against the palette size; out-of-bounds heap data is copied into the framebuffer (garbled display) or the read faults, terminating the viewer.
CVSS
- Version: 3.1
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H
- Base score: 7.1
Exploitation probability (EPSS)
- Probability of exploitation in the next 30 days: 0.24%
- Percentile among all scored CVEs: 13
- Score date: 10/13/2026
EPSS (Exploit Prediction Scoring System, FIRST) estimates how likely a vulnerability is to be exploited in the wild within 30 days. It complements CVSS (impact) and CISA KEV (confirmed exploitation).
🎯 ATT&CK techniques
How this vulnerability is exploited and what the attacker gains, in MITRE ATT&CK terms.
- Exploitation
T1203Exploitation for Client Executionexecution85 % - Primary impact
T1499.004Application or System Exploitationimpact75 %
Vector UI:R (requiere interacción del usuario: abrir VNC malicioso) → T1203 (explotación en cliente). El impacto principal es DoS por crash del visor al leer memoria fuera de límites.
Inferred by our analysis agent from the official description, CVSS vector and CWE, and checked by a supervisor. May contain errors.
🛡️ ATT&CK mitigations that cover these techniques
Affected technologies (1)
⚠ AI-inferred from the description — NVD hasn't analyzed this CVE yet, these aren't verified CPEs.
CWEs
- CWE-125
References
Raw JSON (NVD)
Show
{
"id": "CVE-2026-107611",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-107611",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2026-10-08T14:02:42.563819Z"
}
}
],
"cvssMetricV31": [
{
"type": "Secondary",
"source": "33c584b5-0579-4c06-b2a0-8d8329fcab9c",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 7.1,
"attackVector": "NETWORK",
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H",
"integrityImpact": "NONE",
"userInteraction": "REQUIRED",
"attackComplexity": "LOW",
"availabilityImpact": "HIGH",
"privilegesRequired": "NONE",
"confidentialityImpact": "LOW"
},
"impactScore": 4.2,
"exploitabilityScore": 2.8
}
]
},
"affected": [
{
"source": "33c584b5-0579-4c06-b2a0-8d8329fcab9c",
"affectedData": [
{
"vendor": "GlavSoft",
"modules": [
"TightVNC Viewer (ZRLE decoder)"
],
"product": "TightVNC",
"versions": [
{
"status": "affected",
"version": "0",
"lessThan": "2.8.88",
"versionType": "custom"
}
],
"platforms": [
"Windows"
],
"programFiles": [
"ZrleDecoder.cpp"
],
"defaultStatus": "unaffected",
"programRoutines": [
{
"name": "readPaletteRleTile()"
},
{
"name": "readPackedPaletteTile()"
}
]
}
]
}
],
"published": "2026-10-08T14:16:49.727",
"references": [
{
"url": "https://sourceforge.net/p/vnc-tight/bugs/1657/",
"source": "33c584b5-0579-4c06-b2a0-8d8329fcab9c"
},
{
"url": "https://www.tightvnc.com/whatsnew.php",
"source": "33c584b5-0579-4c06-b2a0-8d8329fcab9c"
}
],
"vulnStatus": "Awaiting Analysis",
"weaknesses": [
{
"type": "Secondary",
"source": "33c584b5-0579-4c06-b2a0-8d8329fcab9c",
"description": [
{
"lang": "en",
"value": "CWE-125"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "An out-of-bounds read vulnerability in the ZRLE decoder of GlavSoft TightVNC Viewer for Windows before 2.8.88 allows a malicious or compromised VNC server to read heap memory beyond the palette allocation and crash the viewer by sending ZRLE-encoded tiles whose palette indices exceed the declared palette size. readPaletteRleTile() and readPackedPaletteTile() use the attacker-supplied index to look up colours without validating it against the palette size; out-of-bounds heap data is copied into the framebuffer (garbled display) or the read faults, terminating the viewer."
}
],
"lastModified": "2026-10-08T21:10:00.133",
"sourceIdentifier": "33c584b5-0579-4c06-b2a0-8d8329fcab9c"
}