29 lines
3.1 KiB
JSON
Raw Normal View History

{
"id": "CVE-2024-46698",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"published": "2024-09-13T06:15:14.563",
"lastModified": "2024-09-13T14:06:04.777",
"vulnStatus": "Undergoing Analysis",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvideo/aperture: optionally match the device in sysfb_disable()\n\nIn aperture_remove_conflicting_pci_devices(), we currently only\ncall sysfb_disable() on vga class devices. This leads to the\nfollowing problem when the pimary device is not VGA compatible:\n\n1. A PCI device with a non-VGA class is the boot display\n2. That device is probed first and it is not a VGA device so\n sysfb_disable() is not called, but the device resources\n are freed by aperture_detach_platform_device()\n3. Non-primary GPU has a VGA class and it ends up calling sysfb_disable()\n4. NULL pointer dereference via sysfb_disable() since the resources\n have already been freed by aperture_detach_platform_device() when\n it was called by the other device.\n\nFix this by passing a device pointer to sysfb_disable() and checking\nthe device to determine if we should execute it or not.\n\nv2: Fix build when CONFIG_SCREEN_INFO is not set\nv3: Move device check into the mutex\n Drop primary variable in aperture_remove_conflicting_pci_devices()\n Drop __init on pci sysfb_pci_dev_is_enabled()"
},
{
"lang": "es",
"value": "En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: video/aperture: opcionalmente hacer coincidir el dispositivo en sysfb_disable() En aperture_remove_conflicting_pci_devices(), actualmente solo llamamos a sysfb_disable() en dispositivos de clase vga. Esto lleva al siguiente problema cuando el dispositivo principal no es compatible con VGA: 1. Un dispositivo PCI con una clase que no es VGA es la pantalla de arranque 2. Ese dispositivo se sondea primero y no es un dispositivo VGA, por lo que no se llama a sysfb_disable(), pero los recursos del dispositivo se liberan mediante aperture_detach_platform_device() 3. La GPU no principal tiene una clase VGA y termina llamando a sysfb_disable() 4. Desreferencia de puntero NULL a trav\u00e9s de sysfb_disable() ya que los recursos ya se han liberado mediante aperture_detach_platform_device() cuando fue llamado por el otro dispositivo. Solucione esto pasando un puntero de dispositivo a sysfb_disable() y verificando el dispositivo para determinar si debemos ejecutarlo o no. v2: Arreglar la compilaci\u00f3n cuando CONFIG_SCREEN_INFO no est\u00e1 configurado v3: Mover la verificaci\u00f3n del dispositivo al mutex Eliminar la variable principal en aperture_remove_conflicting_pci_devices() Eliminar __init en pci sysfb_pci_dev_is_enabled()"
}
],
"metrics": {},
"references": [
{
"url": "https://git.kernel.org/stable/c/17e78f43de0c6da34204cc858b4cc05671ea9acf",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/b49420d6a1aeb399e5b107fc6eb8584d0860fbd7",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
]
}