← Back to CVE Explorer

CVE-2026-7831

Full vulnerability record from the local CVENow database.

Description

UltraVNC viewer through 1.8.2.2 contains an off-by-one stack buffer overflow in the RFB ServerInit message handler. In vncviewer/ClientConnection.cpp, when the server-supplied nameLength equals exactly 2024 the code declares a 2024-byte stack buffer _dn[2024] and calls ReadString(_dn, 2024). ReadString writes the NUL terminator at buf[length], i.e., _dn[2024], one byte past the end of the stack buffer. A malicious VNC server can trigger this condition by advertising a desktop name of length 2024 in its ServerInit message. On release builds without stack canaries the single-byte NUL overwrite adjacent stack data. On builds with /GS stack protection the canary is corrupted and the process terminates, resulting in denial of service. User interaction (connecting the viewer to the malicious server) is required.

Severity
HIGH
CVSS score
7.6 (v3.1)
Vulnerability status
Modified
Source identifier
33c584b5-0579-4c06-b2a0-8d8329fcab9c
Published
2026-07-01 05:16:24.380000
Last modified
2026-10-25 17:10:00.197000
View original CVE JSON
{
  "id": "CVE-2026-7831",
  "sourceIdentifier": "33c584b5-0579-4c06-b2a0-8d8329fcab9c",
  "published": "2026-07-01T05:16:24.380",
  "lastModified": "2026-10-25T17:10:00.197",
  "vulnStatus": "Modified",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "UltraVNC viewer through 1.8.2.2 contains an off-by-one stack buffer overflow in the RFB ServerInit message handler. In vncviewer/ClientConnection.cpp, when the server-supplied nameLength equals exactly 2024 the code declares a 2024-byte stack buffer _dn[2024] and calls ReadString(_dn, 2024). ReadString writes the NUL terminator at buf[length], i.e., _dn[2024], one byte past the end of the stack buffer. A malicious VNC server can trigger this condition by advertising a desktop name of length 2024 in its ServerInit message. On release builds without stack canaries the single-byte NUL overwrite adjacent stack data. On builds with /GS stack protection the canary is corrupted and the process terminates, resulting in denial of service. User interaction (connecting the viewer to the malicious server) is required."
    },
    {
      "lang": "es",
      "value": "El visor de UltraVNC hasta la versión 1.8.2.2 contiene un desbordamiento de búfer de pila por un byte (off-by-one) en el gestor de mensajes RFB ServerInit. En vncviewer/ClientConnection.cpp, cuando la longitud del nombre (nameLength) proporcionada por el servidor es exactamente 2024, el código declara un búfer de pila de 2024 bytes _dn[2024] y llama a ReadString(_dn, 2024). ReadString escribe el terminador NUL en buf[length], es decir, _dn[2024], un byte más allá del final del búfer de pila. Un servidor VNC malicioso puede desencadenar esta condición al anunciar un nombre de escritorio de longitud 2024 en su mensaje ServerInit. En compilaciones de lanzamiento sin canarios de pila, el NUL de un solo byte sobrescribe datos de pila adyacentes. En compilaciones con protección de pila /GS, el canario se corrompe y el proceso termina, lo que resulta en una denegación de servicio. Se requiere interacción del usuario (conectando el visor al servidor malicioso)."
    }
  ],
  "affected": [
    {
      "source": "33c584b5-0579-4c06-b2a0-8d8329fcab9c",
      "affectedData": [
        {
          "vendor": "uvnc",
          "product": "UltraVNC",
          "defaultStatus": "unaffected",
          "modules": [
            "vncviewer"
          ],
          "versions": [
            {
              "version": "0",
              "lessThanOrEqual": "1.8.2.2",
              "versionType": "custom",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "33c584b5-0579-4c06-b2a0-8d8329fcab9c",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:H",
          "baseScore": 7.6,
          "baseSeverity": "HIGH",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "privilegesRequired": "NONE",
          "userInteraction": "REQUIRED",
          "scope": "UNCHANGED",
          "confidentialityImpact": "LOW",
          "integrityImpact": "LOW",
          "availabilityImpact": "HIGH"
        },
        "exploitabilityScore": 2.8,
        "impactScore": 4.7
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-07-01T13:12:22.055256Z",
          "id": "CVE-2026-7831",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "33c584b5-0579-4c06-b2a0-8d8329fcab9c",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-193"
        },
        {
          "lang": "en",
          "value": "CWE-787"
        }
      ]
    }
  ],
  "configurations": [
    {
      "nodes": [
        {
          "operator": "OR",
          "negate": false,
          "cpeMatch": [
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:uvnc:ultravnc:*:*:*:*:*:*:*:*",
              "versionEndIncluding": "1.8.2.2",
              "matchCriteriaId": "593F7EC1-0922-4652-817A-7D57A0F1210D"
            }
          ]
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/ultravnc/UltraVNC",
      "source": "33c584b5-0579-4c06-b2a0-8d8329fcab9c",
      "tags": [
        "Product"
      ]
    },
    {
      "url": "https://uvnc.com/",
      "source": "33c584b5-0579-4c06-b2a0-8d8329fcab9c",
      "tags": [
        "Product",
        "Release Notes"
      ]
    },
    {
      "url": "https://www.securin.io/zero-days/cve-2026-7831-off-by-one-stack-overflow-viewer-namelength-ultravnc",
      "source": "33c584b5-0579-4c06-b2a0-8d8329fcab9c"
    }
  ]
}