CVE Vulnerabilities

CVE-2009-3560

Improper Restriction of Operations within the Bounds of a Memory Buffer

Published: Dec 04, 2009 | Modified: Nov 07, 2023
CVSS 3.x
N/A
Source:
NVD
CVSS 2.x
5 MEDIUM
AV:N/AC:L/Au:N/C:N/I:N/A:P
RedHat/V2
5 MODERATE
AV:N/AC:L/Au:N/C:N/I:N/A:P
RedHat/V3
Ubuntu
MEDIUM

The big2_toUtf8 function in lib/xmltok.c in libexpat in Expat 2.0.1, as used in the XML-Twig module for Perl, allows context-dependent attackers to cause a denial of service (application crash) via an XML document with malformed UTF-8 sequences that trigger a buffer over-read, related to the doProlog function in lib/xmlparse.c, a different vulnerability than CVE-2009-2625 and CVE-2009-3720.

Weakness

The product performs operations on a memory buffer, but it can read from or write to a memory location that is outside of the intended boundary of the buffer.

Affected Software

Name Vendor Start Version End Version
Libexpat Libexpat_project 2.0.1 (including) 2.0.1 (including)
Red Hat Enterprise Linux 3 RedHat expat-0:1.95.5-6.2 *
Red Hat Enterprise Linux 4 RedHat expat-0:1.95.7-4.el4_8.2 *
Red Hat Enterprise Linux 5 RedHat expat-0:1.95.8-8.3.el5_4.2 *
Red Hat JBoss Enterprise Application Platform 6.4 RedHat *
Red Hat JBoss Web Server 1.0 RedHat *
Audacity Ubuntu dapper *
Audacity Ubuntu hardy *
Audacity Ubuntu intrepid *
Audacity Ubuntu jaunty *
Audacity Ubuntu karmic *
Audacity Ubuntu kinetic *
Audacity Ubuntu lucid *
Audacity Ubuntu lunar *
Audacity Ubuntu mantic *
Audacity Ubuntu maverick *
Audacity Ubuntu natty *
Audacity Ubuntu oneiric *
Audacity Ubuntu quantal *
Audacity Ubuntu raring *
Audacity Ubuntu saucy *
Ayttm Ubuntu dapper *
Ayttm Ubuntu hardy *
Ayttm Ubuntu jaunty *
Ayttm Ubuntu karmic *
Ayttm Ubuntu lucid *
Ayttm Ubuntu maverick *
Ayttm Ubuntu natty *
Ayttm Ubuntu oneiric *
Ayttm Ubuntu quantal *
Ayttm Ubuntu raring *
Ayttm Ubuntu saucy *
Ayttm Ubuntu upstream *
Ayttm Ubuntu utopic *
Ayttm Ubuntu vivid *
Cableswig Ubuntu hardy *
Cableswig Ubuntu intrepid *
Cableswig Ubuntu jaunty *
Cableswig Ubuntu karmic *
Cableswig Ubuntu lucid *
Cableswig Ubuntu maverick *
Cableswig Ubuntu natty *
Cableswig Ubuntu oneiric *
Cableswig Ubuntu precise *
Cableswig Ubuntu quantal *
Cableswig Ubuntu raring *
Cableswig Ubuntu saucy *
Cableswig Ubuntu trusty *
Cableswig Ubuntu utopic *
Cableswig Ubuntu vivid *
Cableswig Ubuntu wily *
Cableswig Ubuntu xenial *
Cadaver Ubuntu artful *
Cadaver Ubuntu dapper *
Cadaver Ubuntu hardy *
Cadaver Ubuntu intrepid *
Cadaver Ubuntu jaunty *
Cadaver Ubuntu karmic *
Cadaver Ubuntu lucid *
Cadaver Ubuntu maverick *
Cadaver Ubuntu natty *
Cadaver Ubuntu oneiric *
Cadaver Ubuntu precise *
Cadaver Ubuntu quantal *
Cadaver Ubuntu raring *
Cadaver Ubuntu saucy *
Cadaver Ubuntu trusty *
Cadaver Ubuntu utopic *
Cadaver Ubuntu vivid *
Cadaver Ubuntu wily *
Cadaver Ubuntu yakkety *
Cadaver Ubuntu zesty *
Cmake Ubuntu dapper *
Cmake Ubuntu hardy *
Cmake Ubuntu intrepid *
Cmake Ubuntu jaunty *
Coin3 Ubuntu artful *
Coin3 Ubuntu bionic *
Coin3 Ubuntu cosmic *
Coin3 Ubuntu disco *
Coin3 Ubuntu eoan *
Coin3 Ubuntu esm-apps/bionic *
Coin3 Ubuntu esm-apps/xenial *
Coin3 Ubuntu esm-infra-legacy/trusty *
Coin3 Ubuntu groovy *
Coin3 Ubuntu jaunty *
Coin3 Ubuntu karmic *
Coin3 Ubuntu lucid *
Coin3 Ubuntu maverick *
Coin3 Ubuntu natty *
Coin3 Ubuntu oneiric *
Coin3 Ubuntu precise *
Coin3 Ubuntu quantal *
Coin3 Ubuntu raring *
Coin3 Ubuntu saucy *
Coin3 Ubuntu trusty *
Coin3 Ubuntu trusty/esm *
Coin3 Ubuntu utopic *
Coin3 Ubuntu vivid *
Coin3 Ubuntu wily *
Coin3 Ubuntu xenial *
Coin3 Ubuntu yakkety *
Coin3 Ubuntu zesty *
Expat Ubuntu artful *
Expat Ubuntu bionic *
Expat Ubuntu cosmic *
Expat Ubuntu dapper *
Expat Ubuntu devel *
Expat Ubuntu disco *
Expat Ubuntu eoan *
Expat Ubuntu focal *
Expat Ubuntu groovy *
Expat Ubuntu hardy *
Expat Ubuntu hirsute *
Expat Ubuntu impish *
Expat Ubuntu intrepid *
Expat Ubuntu jammy *
Expat Ubuntu jaunty *
Expat Ubuntu karmic *
Expat Ubuntu kinetic *
Expat Ubuntu lucid *
Expat Ubuntu lunar *
Expat Ubuntu mantic *
Expat Ubuntu maverick *
Expat Ubuntu natty *
Expat Ubuntu noble *
Expat Ubuntu oneiric *
Expat Ubuntu oracular *
Expat Ubuntu precise *
Expat Ubuntu quantal *
Expat Ubuntu raring *
Expat Ubuntu saucy *
Expat Ubuntu trusty *
Expat Ubuntu upstream *
Expat Ubuntu utopic *
Expat Ubuntu vivid *
Expat Ubuntu vivid/stable-phone-overlay *
Expat Ubuntu vivid/ubuntu-core *
Expat Ubuntu wily *
Expat Ubuntu xenial *
Expat Ubuntu yakkety *
Expat Ubuntu zesty *
Gdcm Ubuntu karmic *
Gdcm Ubuntu lucid *
Gdcm Ubuntu maverick *
Gdcm Ubuntu natty *
Gdcm Ubuntu oneiric *
Gdcm Ubuntu quantal *
Gdcm Ubuntu raring *
Gdcm Ubuntu saucy *
Gdcm Ubuntu utopic *
Gdcm Ubuntu vivid *
Grmonitor Ubuntu dapper *
Grmonitor Ubuntu hardy *
Grmonitor Ubuntu intrepid *
Grmonitor Ubuntu jaunty *
Grmonitor Ubuntu karmic *
Insighttoolkit Ubuntu hardy *
Insighttoolkit Ubuntu intrepid *
Insighttoolkit Ubuntu jaunty *
Insighttoolkit Ubuntu karmic *
Insighttoolkit Ubuntu lucid *
Insighttoolkit Ubuntu maverick *
Insighttoolkit Ubuntu natty *
Insighttoolkit Ubuntu oneiric *
Insighttoolkit Ubuntu precise *
Insighttoolkit Ubuntu quantal *
Insighttoolkit Ubuntu raring *
Insighttoolkit Ubuntu saucy *
Insighttoolkit Ubuntu trusty *
Insighttoolkit Ubuntu upstream *
Insighttoolkit Ubuntu utopic *
Insighttoolkit Ubuntu vivid *
Insighttoolkit Ubuntu wily *
Kompozer Ubuntu hardy *
Kompozer Ubuntu intrepid *
Kompozer Ubuntu jaunty *
Kompozer Ubuntu karmic *
Kompozer Ubuntu lucid *
Kompozer Ubuntu maverick *
Kompozer Ubuntu natty *
Kompozer Ubuntu oneiric *
Kompozer Ubuntu precise *
Libparagui1.1 Ubuntu hardy *
Libparagui1.1 Ubuntu intrepid *
Libparagui1.1 Ubuntu jaunty *
Libparagui1.1 Ubuntu karmic *
Libparagui1.1 Ubuntu lucid *
Libparagui1.1 Ubuntu maverick *
Libparagui1.1 Ubuntu natty *
Libparagui1.1 Ubuntu oneiric *
Libparagui1.1 Ubuntu precise *
Libxmltok Ubuntu bionic *
Libxmltok Ubuntu hirsute *
Libxmltok Ubuntu impish *
Libxmltok Ubuntu kinetic *
Libxmltok Ubuntu lunar *
Libxmltok Ubuntu mantic *
Libxmltok Ubuntu trusty *
Libxmltok Ubuntu xenial *
Matanza Ubuntu artful *
Matanza Ubuntu bionic *
Matanza Ubuntu cosmic *
Matanza Ubuntu dapper *
Matanza Ubuntu disco *
Matanza Ubuntu eoan *
Matanza Ubuntu groovy *
Matanza Ubuntu hardy *
Matanza Ubuntu hirsute *
Matanza Ubuntu impish *
Matanza Ubuntu intrepid *
Matanza Ubuntu jaunty *
Matanza Ubuntu karmic *
Matanza Ubuntu kinetic *
Matanza Ubuntu lucid *
Matanza Ubuntu lunar *
Matanza Ubuntu mantic *
Matanza Ubuntu maverick *
Matanza Ubuntu natty *
Matanza Ubuntu oneiric *
Matanza Ubuntu precise *
Matanza Ubuntu quantal *
Matanza Ubuntu raring *
Matanza Ubuntu saucy *
Matanza Ubuntu trusty *
Matanza Ubuntu utopic *
Matanza Ubuntu vivid *
Matanza Ubuntu wily *
Matanza Ubuntu xenial *
Matanza Ubuntu yakkety *
Matanza Ubuntu zesty *
Paraview Ubuntu intrepid *
Paraview Ubuntu jaunty *
Paraview Ubuntu karmic *
Paraview Ubuntu lucid *
Paraview Ubuntu maverick *
Paraview Ubuntu natty *
Paraview Ubuntu oneiric *
Paraview Ubuntu quantal *
Paraview Ubuntu raring *
Paraview Ubuntu saucy *
Paraview Ubuntu upstream *
Paraview Ubuntu utopic *
Poco Ubuntu hardy *
Poco Ubuntu jaunty *
Poco Ubuntu karmic *
Poco Ubuntu lucid *
Poco Ubuntu maverick *
Poco Ubuntu natty *
Poco Ubuntu oneiric *
Poco Ubuntu quantal *
Poco Ubuntu raring *
Poco Ubuntu saucy *
Poco Ubuntu utopic *
Poco Ubuntu vivid *
Python-xml Ubuntu dapper *
Python-xml Ubuntu hardy *
Python-xml Ubuntu intrepid *
Python-xml Ubuntu jaunty *
Python2.4 Ubuntu dapper *
Python2.4 Ubuntu hardy *
Python2.4 Ubuntu intrepid *
Python2.4 Ubuntu jaunty *
Python2.4 Ubuntu karmic *
Python2.5 Ubuntu hardy *
Python2.5 Ubuntu intrepid *
Python2.5 Ubuntu jaunty *
Python2.5 Ubuntu karmic *
Python2.6 Ubuntu upstream *
Simgear Ubuntu dapper *
Simgear Ubuntu hardy *
Simgear Ubuntu intrepid *
Simgear Ubuntu jaunty *
Simgear Ubuntu karmic *
Simgear Ubuntu lucid *
Simgear Ubuntu maverick *
Simgear Ubuntu natty *
Simgear Ubuntu oneiric *
Simgear Ubuntu precise *
Simgear Ubuntu quantal *
Simgear Ubuntu raring *
Simgear Ubuntu saucy *
Simgear Ubuntu utopic *
Simgear Ubuntu vivid *
Sitecopy Ubuntu artful *
Sitecopy Ubuntu dapper *
Sitecopy Ubuntu hardy *
Sitecopy Ubuntu intrepid *
Sitecopy Ubuntu jaunty *
Sitecopy Ubuntu karmic *
Sitecopy Ubuntu lucid *
Sitecopy Ubuntu maverick *
Sitecopy Ubuntu natty *
Sitecopy Ubuntu oneiric *
Sitecopy Ubuntu precise *
Sitecopy Ubuntu quantal *
Sitecopy Ubuntu raring *
Sitecopy Ubuntu saucy *
Sitecopy Ubuntu trusty *
Sitecopy Ubuntu upstream *
Sitecopy Ubuntu utopic *
Sitecopy Ubuntu vivid *
Sitecopy Ubuntu wily *
Sitecopy Ubuntu yakkety *
Sitecopy Ubuntu zesty *
Smart Ubuntu dapper *
Swish-e Ubuntu artful *
Swish-e Ubuntu bionic *
Swish-e Ubuntu cosmic *
Swish-e Ubuntu dapper *
Swish-e Ubuntu disco *
Swish-e Ubuntu eoan *
Swish-e Ubuntu groovy *
Swish-e Ubuntu hardy *
Swish-e Ubuntu hirsute *
Swish-e Ubuntu impish *
Swish-e Ubuntu intrepid *
Swish-e Ubuntu jaunty *
Swish-e Ubuntu karmic *
Swish-e Ubuntu kinetic *
Swish-e Ubuntu lucid *
Swish-e Ubuntu lunar *
Swish-e Ubuntu mantic *
Swish-e Ubuntu maverick *
Swish-e Ubuntu natty *
Swish-e Ubuntu oneiric *
Swish-e Ubuntu precise *
Swish-e Ubuntu quantal *
Swish-e Ubuntu raring *
Swish-e Ubuntu saucy *
Swish-e Ubuntu trusty *
Swish-e Ubuntu utopic *
Swish-e Ubuntu vivid *
Swish-e Ubuntu wily *
Swish-e Ubuntu xenial *
Swish-e Ubuntu yakkety *
Swish-e Ubuntu zesty *
Tdom Ubuntu artful *
Tdom Ubuntu cosmic *
Tdom Ubuntu dapper *
Tdom Ubuntu jaunty *
Tdom Ubuntu karmic *
Tdom Ubuntu lucid *
Tdom Ubuntu maverick *
Tdom Ubuntu natty *
Tdom Ubuntu oneiric *
Tdom Ubuntu precise *
Tdom Ubuntu quantal *
Tdom Ubuntu raring *
Tdom Ubuntu saucy *
Tdom Ubuntu trusty *
Tdom Ubuntu utopic *
Tdom Ubuntu vivid *
Tdom Ubuntu wily *
Tdom Ubuntu yakkety *
Tdom Ubuntu zesty *
Tla Ubuntu artful *
Tla Ubuntu dapper *
Tla Ubuntu hardy *
Tla Ubuntu intrepid *
Tla Ubuntu jaunty *
Tla Ubuntu karmic *
Tla Ubuntu lucid *
Tla Ubuntu maverick *
Tla Ubuntu natty *
Tla Ubuntu oneiric *
Tla Ubuntu precise *
Tla Ubuntu quantal *
Tla Ubuntu raring *
Tla Ubuntu saucy *
Tla Ubuntu trusty *
Tla Ubuntu upstream *
Tla Ubuntu utopic *
Tla Ubuntu vivid *
Tla Ubuntu wily *
Tla Ubuntu yakkety *
Tla Ubuntu zesty *
Vnc4 Ubuntu artful *
Vnc4 Ubuntu dapper *
Vnc4 Ubuntu hardy *
Vnc4 Ubuntu intrepid *
Vnc4 Ubuntu jaunty *
Vnc4 Ubuntu karmic *
Vnc4 Ubuntu lucid *
Vnc4 Ubuntu maverick *
Vnc4 Ubuntu natty *
Vnc4 Ubuntu oneiric *
Vnc4 Ubuntu precise *
Vnc4 Ubuntu quantal *
Vnc4 Ubuntu raring *
Vnc4 Ubuntu saucy *
Vnc4 Ubuntu utopic *
Vnc4 Ubuntu vivid *
Vnc4 Ubuntu wily *
Vnc4 Ubuntu yakkety *
Vnc4 Ubuntu zesty *
Vtk Ubuntu dapper *
Vtk Ubuntu hardy *
Vtk Ubuntu intrepid *
Vtk Ubuntu jaunty *
Vtk Ubuntu karmic *
Vtk Ubuntu lucid *
Vtk Ubuntu maverick *
Vtk Ubuntu natty *
Vtk Ubuntu oneiric *
Vtk Ubuntu precise *
Vtk Ubuntu quantal *
Vtk Ubuntu raring *
Vtk Ubuntu saucy *
Vtk Ubuntu utopic *
Vtk Ubuntu vivid *
Vtk Ubuntu wily *
W3c-libwww Ubuntu dapper *
W3c-libwww Ubuntu hardy *
W3c-libwww Ubuntu intrepid *
W3c-libwww Ubuntu jaunty *
W3c-libwww Ubuntu karmic *
Wbxml2 Ubuntu artful *
Wbxml2 Ubuntu dapper *
Wbxml2 Ubuntu hardy *
Wbxml2 Ubuntu intrepid *
Wbxml2 Ubuntu jaunty *
Wbxml2 Ubuntu karmic *
Wbxml2 Ubuntu lucid *
Wbxml2 Ubuntu maverick *
Wbxml2 Ubuntu natty *
Wbxml2 Ubuntu oneiric *
Wbxml2 Ubuntu precise *
Wbxml2 Ubuntu quantal *
Wbxml2 Ubuntu raring *
Wbxml2 Ubuntu saucy *
Wbxml2 Ubuntu trusty *
Wbxml2 Ubuntu utopic *
Wbxml2 Ubuntu vivid *
Wbxml2 Ubuntu wily *
Wbxml2 Ubuntu yakkety *
Wbxml2 Ubuntu zesty *
Wxwidgets2.6 Ubuntu dapper *
Wxwidgets2.6 Ubuntu hardy *
Wxwidgets2.6 Ubuntu intrepid *
Wxwidgets2.6 Ubuntu jaunty *
Wxwidgets2.6 Ubuntu karmic *
Wxwidgets2.6 Ubuntu lucid *
Wxwidgets2.6 Ubuntu maverick *
Wxwidgets2.6 Ubuntu natty *
Wxwidgets2.6 Ubuntu oneiric *
Wxwidgets2.6 Ubuntu precise *
Wxwidgets2.8 Ubuntu hardy *
Wxwidgets2.8 Ubuntu intrepid *
Wxwidgets2.8 Ubuntu jaunty *
Wxwidgets2.8 Ubuntu karmic *
Wxwidgets2.8 Ubuntu lucid *
Wxwidgets2.8 Ubuntu maverick *
Wxwidgets2.8 Ubuntu natty *
Wxwidgets2.8 Ubuntu oneiric *
Wxwidgets2.8 Ubuntu quantal *
Wxwidgets2.8 Ubuntu raring *
Wxwidgets2.8 Ubuntu saucy *
Wxwidgets2.8 Ubuntu utopic *
Wxwidgets2.8 Ubuntu vivid *
Wxwidgets2.8 Ubuntu wily *
Wxwindows2.4 Ubuntu dapper *
Wxwindows2.4 Ubuntu hardy *
Wxwindows2.4 Ubuntu intrepid *
Wxwindows2.4 Ubuntu jaunty *
Xmlrpc-c Ubuntu artful *
Xmlrpc-c Ubuntu bionic *
Xmlrpc-c Ubuntu cosmic *
Xmlrpc-c Ubuntu dapper *
Xmlrpc-c Ubuntu devel *
Xmlrpc-c Ubuntu disco *
Xmlrpc-c Ubuntu eoan *
Xmlrpc-c Ubuntu focal *
Xmlrpc-c Ubuntu groovy *
Xmlrpc-c Ubuntu hardy *
Xmlrpc-c Ubuntu hirsute *
Xmlrpc-c Ubuntu impish *
Xmlrpc-c Ubuntu intrepid *
Xmlrpc-c Ubuntu jammy *
Xmlrpc-c Ubuntu jaunty *
Xmlrpc-c Ubuntu karmic *
Xmlrpc-c Ubuntu kinetic *
Xmlrpc-c Ubuntu lucid *
Xmlrpc-c Ubuntu lunar *
Xmlrpc-c Ubuntu mantic *
Xmlrpc-c Ubuntu maverick *
Xmlrpc-c Ubuntu natty *
Xmlrpc-c Ubuntu noble *
Xmlrpc-c Ubuntu oneiric *
Xmlrpc-c Ubuntu oracular *
Xmlrpc-c Ubuntu precise *
Xmlrpc-c Ubuntu quantal *
Xmlrpc-c Ubuntu raring *
Xmlrpc-c Ubuntu saucy *
Xmlrpc-c Ubuntu trusty *
Xmlrpc-c Ubuntu utopic *
Xmlrpc-c Ubuntu vivid *
Xmlrpc-c Ubuntu wily *
Xmlrpc-c Ubuntu xenial *
Xmlrpc-c Ubuntu yakkety *
Xmlrpc-c Ubuntu zesty *
Xotcl Ubuntu artful *
Xotcl Ubuntu intrepid *
Xotcl Ubuntu jaunty *
Xotcl Ubuntu karmic *
Xotcl Ubuntu lucid *
Xotcl Ubuntu maverick *
Xotcl Ubuntu natty *
Xotcl Ubuntu oneiric *
Xotcl Ubuntu precise *
Xotcl Ubuntu quantal *
Xotcl Ubuntu raring *
Xotcl Ubuntu saucy *
Xotcl Ubuntu trusty *
Xotcl Ubuntu upstream *
Xotcl Ubuntu utopic *
Xotcl Ubuntu vivid *
Xotcl Ubuntu wily *
Xotcl Ubuntu yakkety *
Xotcl Ubuntu zesty *
Xulrunner Ubuntu hardy *
Xulrunner Ubuntu intrepid *
Xulrunner Ubuntu jaunty *
Xulrunner Ubuntu karmic *

Extended Description

Certain languages allow direct addressing of memory locations and do not automatically ensure that these locations are valid for the memory buffer that is being referenced. This can cause read or write operations to be performed on memory locations that may be associated with other variables, data structures, or internal program data. As a result, an attacker may be able to execute arbitrary code, alter the intended control flow, read sensitive information, or cause the system to crash.

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