← Back to CVE Explorer

CVE-2026-7828

Full vulnerability record from the local CVENow database.

Description

UltraVNC repeater through 1.8.2.2 contains an integer overflow in the HTTP request logging path. In repeater/webgui/settings.c:336, the win_log() function allocates list nodes via malloc(sizeof(struct LIST) + strlen(line)), where line is derived from HTTP request URIs. If strlen(line) is sufficiently large, the addition overflows to a value smaller than sizeof(struct LIST), causing a heap allocation smaller than required. The subsequent strcpy of the full string into the undersized allocation produces a heap buffer overflow. In the current implementation this overflow is bounded by the HTTP receive buffer size (WI_RXBUFSIZE = 153600 bytes, well below SIZE_MAX on 32-bit builds), limiting practical exploitability to a partial heap write. A remote unauthenticated attacker can trigger the theoretical overflow path by sending a maximally-sized URI in an HTTP request to the repeater HTTP port.

Severity
MEDIUM
CVSS score
5.3 (v3.1)
Vulnerability status
Modified
Source identifier
33c584b5-0579-4c06-b2a0-8d8329fcab9c
Published
2026-07-01 05:16:23.970000
Last modified
2026-10-25 17:10:00.197000
View original CVE JSON
{
  "id": "CVE-2026-7828",
  "sourceIdentifier": "33c584b5-0579-4c06-b2a0-8d8329fcab9c",
  "published": "2026-07-01T05:16:23.970",
  "lastModified": "2026-10-25T17:10:00.197",
  "vulnStatus": "Modified",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "UltraVNC repeater through 1.8.2.2 contains an integer overflow in the HTTP request logging path. In repeater/webgui/settings.c:336, the win_log() function allocates list nodes via malloc(sizeof(struct LIST) + strlen(line)), where line is derived from HTTP request URIs. If strlen(line) is sufficiently large, the addition overflows to a value smaller than sizeof(struct LIST), causing a heap allocation smaller than required. The subsequent strcpy of the full string into the undersized allocation produces a heap buffer overflow. In the current implementation this overflow is bounded by the HTTP receive buffer size (WI_RXBUFSIZE = 153600 bytes, well below SIZE_MAX on 32-bit builds), limiting practical exploitability to a partial heap write. A remote unauthenticated attacker can trigger the theoretical overflow path by sending a maximally-sized URI in an HTTP request to the repeater HTTP port."
    },
    {
      "lang": "es",
      "value": "El repetidor UltraVNC hasta la versión 1.8.2.2 contiene un desbordamiento de entero en la ruta de registro de solicitudes HTTP. En repeater/webgui/settings.c:336, la función win_log() asigna nodos de lista a través de malloc(sizeof(struct LIST) + strlen(line)), donde line se deriva de las URI de las solicitudes HTTP. Si strlen(line) es suficientemente grande, la adición desborda a un valor menor que sizeof(struct LIST), causando una asignación de memoria dinámica (heap) menor de lo requerido. El strcpy subsiguiente de la cadena completa en la asignación de tamaño insuficiente produce un desbordamiento de búfer en el heap. En la implementación actual, este desbordamiento está limitado por el tamaño del búfer de recepción HTTP (WI_RXBUFSIZE = 153600 bytes, muy por debajo de SIZE_MAX en compilaciones de 32 bits), limitando la explotabilidad práctica a una escritura parcial en el heap. Un atacante remoto no autenticado puede activar la ruta de desbordamiento teórica enviando una URI de tamaño máximo en una solicitud HTTP al puerto HTTP del repetidor."
    }
  ],
  "affected": [
    {
      "source": "33c584b5-0579-4c06-b2a0-8d8329fcab9c",
      "affectedData": [
        {
          "vendor": "uvnc",
          "product": "UltraVNC",
          "defaultStatus": "unaffected",
          "modules": [
            "repeater"
          ],
          "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:N/S:U/C:N/I:N/A:L",
          "baseScore": 5.3,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "privilegesRequired": "NONE",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "NONE",
          "integrityImpact": "NONE",
          "availabilityImpact": "LOW"
        },
        "exploitabilityScore": 3.9,
        "impactScore": 1.4
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-07-01T13:14:15.623029Z",
          "id": "CVE-2026-7828",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "yes"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "33c584b5-0579-4c06-b2a0-8d8329fcab9c",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-190"
        }
      ]
    }
  ],
  "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-7828-integer-overflow-win-log-malloc-ultravnc-repeater",
      "source": "33c584b5-0579-4c06-b2a0-8d8329fcab9c"
    }
  ]
}