CVE-2026-19874

A heap-based buffer overflow vulnerability exists in Konami's Metal Gear Online 3, originating from improper validation of lobby data fields related to kicked players. The affected function processes a list of kicked player identifiers using the lobby data key "kick_num" to determine the number of entries, and individual kicked player IDs supplied via keys in the format "kicked_id_%i". The function does not validate that "kick_num" falls within the expected bounds. The game design limits matches to a maximum of 16 players, and the corresponding buffer for storing kicked player IDs is sized accordingly. If "kick_num" exceeds this limit, the function continues writing the provided player IDs past the end of the intended buffer and into adjacent memory regions. These adjacent regions contain Steam callback handler structures responsible for processing lobby data updates, lobby messages, and other related events. By supplying an oversized "kick_num" value and appropriate "kicked_id_%i" fields, an attacker can overwrite fields within the callback handler structures, including function pointers and callback argument values. Successful exploitation may enable control-flow hijacking, potentially allowing arbitrary code execution within the game process.
Configurations

No configuration.

History

12 Oct 2026, 15:10

Type Values Removed Values Added
Summary
  • (es) Una vulnerabilidad de desbordamiento de búfer basado en montículo existe en Metal Gear Online 3 de Konami, originada por una validación incorrecta de los campos de datos del lobby relacionados con los jugadores expulsados. La función afectada procesa una lista de identificadores de jugadores expulsados utilizando la clave de datos del lobby 'kick_num' para determinar el número de entradas, y los ID de jugadores expulsados individuales proporcionados a través de claves en el formato 'kicked_id_%i'. La función no valida que 'kick_num' se encuentre dentro de los límites esperados. El diseño del juego limita las partidas a un máximo de 16 jugadores, y el búfer correspondiente para almacenar los ID de los jugadores expulsados tiene un tamaño acorde. Si 'kick_num' excede este límite, la función continúa escribiendo los ID de jugadores proporcionados más allá del final del búfer previsto y en regiones de memoria adyacentes. Estas regiones adyacentes contienen estructuras de gestor de retrollamada de Steam responsables de procesar las actualizaciones de datos del lobby, los mensajes del lobby y otros eventos relacionados. Al proporcionar un valor de 'kick_num' sobredimensionado y campos 'kicked_id_%i' apropiados, un atacante puede sobrescribir campos dentro de las estructuras del gestor de retrollamada, incluyendo punteros de función y valores de argumentos de retrollamada. La explotación exitosa puede permitir el secuestro del flujo de control, permitiendo potencialmente la ejecución de código arbitrario dentro del proceso del juego.

Information

Published : 2026-08-24 15:16

Updated : 2026-10-12 15:10


NVD link : CVE-2026-19874

Mitre link : CVE-2026-19874

CVE.ORG link : CVE-2026-19874


JSON object : View

Products Affected

No product.

CWE
CWE-122

Heap-based Buffer Overflow