CVE Vulnerabilities

CVE-2023-39281

Out-of-bounds Write

Published: Nov 01, 2023 | Modified: Sep 06, 2024
CVSS 3.x
9.8
CRITICAL
Source:
NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2.x
RedHat/V2
RedHat/V3
Ubuntu

A stack buffer overflow vulnerability discovered in AsfSecureBootDxe in Insyde InsydeH2O with kernel 5.0 through 5.5 allows attackers to run arbitrary code execution during the DXE phase.

Weakness

The product writes data past the end, or before the beginning, of the intended buffer.

Affected Software

Name Vendor Start Version End Version
B760 Intel - (including) - (including)
C262 Intel - (including) - (including)
C266 Intel - (including) - (including)
Core_i3-1305u Intel - (including) - (including)
Core_i3-13100 Intel - (including) - (including)
Core_i3-13100e Intel - (including) - (including)
Core_i3-13100f Intel - (including) - (including)
Core_i3-13100t Intel - (including) - (including)
Core_i3-13100te Intel - (including) - (including)
Core_i3-1315u Intel - (including) - (including)
Core_i3-1315ue Intel - (including) - (including)
Core_i3-1315ure Intel - (including) - (including)
Core_i3-1320pe Intel - (including) - (including)
Core_i3-1320pre Intel - (including) - (including)
Core_i3-13300he Intel - (including) - (including)
Core_i3-13300hre Intel - (including) - (including)
Core_i5-1334u Intel - (including) - (including)
Core_i5-1335u Intel - (including) - (including)
Core_i5-1335ue Intel - (including) - (including)
Core_i5-13400 Intel - (including) - (including)
Core_i5-13400e Intel - (including) - (including)
Core_i5-13400f Intel - (including) - (including)
Core_i5-13400t Intel - (including) - (including)
Core_i5-1340p Intel - (including) - (including)
Core_i5-1340pe Intel - (including) - (including)
Core_i5-13420h Intel - (including) - (including)
Core_i5-13450hx Intel - (including) - (including)
Core_i5-1345u Intel - (including) - (including)
Core_i5-1345ue Intel - (including) - (including)
Core_i5-1345ure Intel - (including) - (including)
Core_i5-13500 Intel - (including) - (including)
Core_i5-13500e Intel - (including) - (including)
Core_i5-13500h Intel - (including) - (including)
Core_i5-13500hx Intel - (including) - (including)
Core_i5-13500t Intel - (including) - (including)
Core_i5-13500te Intel - (including) - (including)
Core_i5-13505h Intel - (including) - (including)
Core_i5-1350p Intel - (including) - (including)
Core_i5-1350pe Intel - (including) - (including)
Core_i5-1350pre Intel - (including) - (including)
Core_i5-13600 Intel - (including) - (including)
Core_i5-13600h Intel - (including) - (including)
Core_i5-13600he Intel - (including) - (including)
Core_i5-13600hre Intel - (including) - (including)
Core_i5-13600hx Intel - (including) - (including)
Core_i5-13600k Intel - (including) - (including)
Core_i5-13600kf Intel - (including) - (including)
Core_i5-13600t Intel - (including) - (including)
Core_i5_14600k Intel - (including) - (including)
Core_i5_14600kf Intel - (including) - (including)
Core_i7-1355u Intel - (including) - (including)
Core_i7-1360p Intel - (including) - (including)
Core_i7-13620h Intel - (including) - (including)
Core_i7-13650hx Intel - (including) - (including)
Core_i7-1365u Intel - (including) - (including)
Core_i7-1365ue Intel - (including) - (including)
Core_i7-1365ure Intel - (including) - (including)
Core_i7-1366ure Intel - (including) - (including)
Core_i7-13700 Intel - (including) - (including)
Core_i7-13700e Intel - (including) - (including)
Core_i7-13700f Intel - (including) - (including)
Core_i7-13700h Intel - (including) - (including)
Core_i7-13700hx Intel - (including) - (including)
Core_i7-13700k Intel - (including) - (including)
Core_i7-13700kf Intel - (including) - (including)
Core_i7-13700t Intel - (including) - (including)
Core_i7-13700te Intel - (including) - (including)
Core_i7-13705h Intel - (including) - (including)
Core_i7-1370p Intel - (including) - (including)
Core_i7-1370pe Intel - (including) - (including)
Core_i7-1370pre Intel - (including) - (including)
Core_i7-1375pre Intel - (including) - (including)
Core_i7-13800h Intel - (including) - (including)
Core_i7-13800he Intel - (including) - (including)
Core_i7-13800hre Intel - (including) - (including)
Core_i7-13850hx Intel - (including) - (including)
Core_i7_14700k Intel - (including) - (including)
Core_i7_14700kf Intel - (including) - (including)
Core_i9-13900 Intel - (including) - (including)
Core_i9-13900e Intel - (including) - (including)
Core_i9-13900f Intel - (including) - (including)
Core_i9-13900h Intel - (including) - (including)
Core_i9-13900hk Intel - (including) - (including)
Core_i9-13900hx Intel - (including) - (including)
Core_i9-13900k Intel - (including) - (including)
Core_i9-13900kf Intel - (including) - (including)
Core_i9-13900ks Intel - (including) - (including)
Core_i9-13900t Intel - (including) - (including)
Core_i9-13900te Intel - (including) - (including)
Core_i9-13905h Intel - (including) - (including)
Core_i9-13950hx Intel - (including) - (including)
Core_i9-13980hx Intel - (including) - (including)
Core_i9-14900k Intel - (including) - (including)
Core_i9-14900kf Intel - (including) - (including)
H770 Intel - (including) - (including)
Hm770 Intel - (including) - (including)
U300 Intel - (including) - (including)
U300e Intel - (including) - (including)
Wm790 Intel - (including) - (including)
Z790 Intel - (including) - (including)

Potential Mitigations

  • Use a language that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid.

  • For example, many languages that perform their own memory management, such as Java and Perl, are not subject to buffer overflows. Other languages, such as Ada and C#, typically provide overflow protection, but the protection can be disabled by the programmer.

  • Be wary that a language’s interface to native code may still be subject to overflows, even if the language itself is theoretically safe.

  • Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid.

  • Examples include the Safe C String Library (SafeStr) by Messier and Viega [REF-57], and the Strsafe.h library from Microsoft [REF-56]. These libraries provide safer versions of overflow-prone string-handling functions.

  • Use automatic buffer overflow detection mechanisms that are offered by certain compilers or compiler extensions. Examples include: the Microsoft Visual Studio /GS flag, Fedora/Red Hat FORTIFY_SOURCE GCC flag, StackGuard, and ProPolice, which provide various mechanisms including canary-based detection and range/index checking.

  • D3-SFCV (Stack Frame Canary Validation) from D3FEND [REF-1334] discusses canary-based detection in detail.

  • Consider adhering to the following rules when allocating and managing an application’s memory:

  • Run or compile the software using features or extensions that randomly arrange the positions of a program’s executable and libraries in memory. Because this makes the addresses unpredictable, it can prevent an attacker from reliably jumping to exploitable code.

  • Examples include Address Space Layout Randomization (ASLR) [REF-58] [REF-60] and Position-Independent Executables (PIE) [REF-64]. Imported modules may be similarly realigned if their default memory addresses conflict with other modules, in a process known as “rebasing” (for Windows) and “prelinking” (for Linux) [REF-1332] using randomly generated addresses. ASLR for libraries cannot be used in conjunction with prelink since it would require relocating the libraries at run-time, defeating the whole purpose of prelinking.

  • For more information on these techniques see D3-SAOR (Segment Address Offset Randomization) from D3FEND [REF-1335].

  • Use a CPU and operating system that offers Data Execution Protection (using hardware NX or XD bits) or the equivalent techniques that simulate this feature in software, such as PaX [REF-60] [REF-61]. These techniques ensure that any instruction executed is exclusively at a memory address that is part of the code segment.

  • For more information on these techniques see D3-PSEP (Process Segment Execution Prevention) from D3FEND [REF-1336].

References