• S
    x86/acpi: Prevent out of bound access caused by broken ACPI tables · dad5ab0d
    Seunghun Han 提交于
    The bus_irq argument of mp_override_legacy_irq() is used as the index into
    the isa_irq_to_gsi[] array. The bus_irq argument originates from
    ACPI_MADT_TYPE_IO_APIC and ACPI_MADT_TYPE_INTERRUPT items in the ACPI
    tables, but is nowhere sanity checked.
    
    That allows broken or malicious ACPI tables to overwrite memory, which
    might cause malfunction, panic or arbitrary code execution.
    
    Add a sanity check and emit a warning when that triggers.
    
    [ tglx: Added warning and rewrote changelog ]
    Signed-off-by: NSeunghun Han <kkamagui@gmail.com>
    Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
    Cc: security@kernel.org
    Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
    Cc: stable@vger.kernel.org
    Signed-off-by: NIngo Molnar <mingo@kernel.org>
    dad5ab0d
boot.c 41.8 KB