Security is Everyone's Job
A videocard is a piece of computer hardware that connects to the motherboard and the monitor.
It has a graphics processor (GPU) and video memory (VRAM) that help it create and display images on the screen.
A GPU is a specialized electronic circuit that can perform complex calculations for graphics rendering.
It can handle many tasks at once, making it faster than a CPU for some applications.
A videocard works by receiving data from the CPU about what image to display. The CPU sends instructions to the GPU, which then processes them using its own logic and memory
The GPU decides how to use the pixels on the screen to create the image, and applies lighting, texture, color, and other effects.
The GPU then stores the completed image in the VRAM, which holds information about each pixel and acts as a buffer between the GPU and the monitor.
The monitor then reads the data from the VRAM and displays it on the screen.
A GPU works by dividing a task into thousands of smaller tasks and processing them all at once.
This is called parallel processing, and it makes GPUs more suitable for handling large processes that are made up of many small parts, like 3D graphics.
A GPU has many cores, which are like mini-processors that can execute instructions independently.
Each core can handle a different part of the image, such as a triangle, a pixel, or a shader.
A shader is a program that determines how an object looks on the screen, such as its color, brightness, or texture.
A GPU can run many shaders at the same time, creating realistic and detailed graphics.
A CPU stands for Central Processing Unit, while a GPU stands for Graphics Processing Unit
A CPU consists of few cores with lots of cache memory, while a GPU consists of hundreds of cores with less cache memory
A CPU can handle few software threads at a time, while a GPU can handle thousands of threads simultaneously
A CPU is better at performing a larger array of tasks, while a GPU is better at rendering images, especially in gaming
A CPU focuses on low-latency, while a GPU focuses on throughput
To summarize, a CPU is a general-purpose processor that can do anything, but a GPU is a specialized processor that is designed to make processing of three-dimensional images more efficient. A GPU does this by extracting parallelism from the algorithm and doing lots of matrix arithmetic and floating point calculations. A GPU can run many shaders at the same time, creating realistic and detailed graphics
There are two major types of GPU architectures: immediate-mode rendering (IMR) and tile-based rendering (TBR).
IMR
IMR GPUs process the entire graphics pipeline in a single pass, while TBR GPUs divide the framebuffer into tiles and process each tile separately.
IMR GPUs are more flexible and can handle a wider range of tasks, while TBR GPUs are more efficient and can save memory bandwidth and power consumption.
Some examples of IMR GPUs are NVIDIA’s Pascal, Turing, and Ampere architectures.
These architectures have improved over time by adding more CUDA cores, Tensor cores, and Ray Tracing cores.
CUDA
CUDA cores are the basic units of parallel processing that can execute various instructions.
Tensor Cores
Tensor cores are specialized units that can perform matrix operations for deep learning applications (AI).
Ray Tracing
Ray Tracing cores are dedicated units that can accelerate ray tracing algorithms for realistic lighting effects
TBR
Some examples of TBR GPUs are ARM’s Mali, Qualcomm’s Adreno, and Apple’s Metal architectures.
These architectures are designed for mobile devices and embedded systems that have limited resources and power budgets.
They use techniques such as deferred shading, tile-based deferred rendering, and tile-based immediate-mode rendering to optimize the graphics pipeline.
They also support features such as variable rate shading, multiview rendering, and foveated rendering to enhance the performance and quality of graphics
Specialized videocards are videocards that are tailored for specific purposes or markets.
For example, NVIDIA’s Quadro and AMD’s Radeon Pro are professional videocards that are optimized for workstation applications such as CAD, 3D modeling, video editing, and animation.
They have higher reliability, stability, and compatibility than consumer videocards. They also support advanced features such as ECC memory, large frame buffers, virtualization, and certified drivers.
Another example of specialized videocards are NVIDIA’s GeForce RTX and AMD’s Radeon RX series. These are gaming videocards that are designed for high-end gaming performance and quality.
They have high clock speeds, memory bandwidths, and cooling systems to handle demanding games. They also support cutting-edge technologies such as ray tracing, DLSS, FSR, VR, and G-Sync/FreeSync
Videocards can be exploited by malicious actors to perform unauthorized computations, such as cryptocurrency mining, password cracking, or malware execution. This can result in performance degradation, increased power consumption, and data theft or corruption
Videocards can be used to bypass security mechanisms or protections implemented by the operating system or other software. For example, videocards can access memory regions that are not accessible by the CPU, or execute code that is not verified by the system
Videocards can be vulnerable to physical attacks, such as tampering, reverse engineering, or side-channel analysis. These attacks can reveal sensitive information stored or processed by the videocard, such as encryption keys, passwords, or biometric data
CVE-2023-4211: Arm Mali GPU Kernel Driver Use-After-Free Vulnerability. This vulnerability allows a local, non-privileged user to make improper GPU memory processing operations to gain access to already freed memory
CVE-2023-4212: NVIDIA GPU Display Driver Denial of Service Vulnerability. This vulnerability allows a local attacker with basic user privileges to cause a denial of service condition on Windows systems by triggering an out-of-bounds access in the kernel mode layer
CVE-2023-4213: Apple Metal Graphics Technology Use After Free Vulnerability. This vulnerability allows a remote attacker to execute arbitrary code on macOS systems by exploiting a use after free condition in the Apple Metal graphics technology.
CVE-2023-5217: Google Chrome libvpx Heap Buffer Overflow Vulnerability. This vulnerability allows a remote attacker to potentially exploit heap corruption via a crafted HTML page that uses libvpx for vp8 encoding
CVE-2023-5218: AMD Radeon Software Adrenalin Edition Privilege Escalation Vulnerability. This vulnerability allows a local attacker with low privileges to escalate privileges and execute code as an administrator on Windows systems by exploiting a flaw in the AMD User Experience Program
CVE-2023-21106: Qualcomm Adreno GPU Driver Memory Corruption Vulnerability. This vulnerability allows a local attacker to cause memory corruption and potentially gain code execution on Android devices by exploiting a flaw in the Qualcomm Adreno GPU driver.
CVE-2023-2847: NVIDIA GPU Display Driver Privilege Escalation Vulnerability. This vulnerability allows a local attacker with basic user privileges to escalate privileges and execute code as an administrator on Windows systems
CVE-2023-2848: Intel Graphics Driver for Windows Information Disclosure Vulnerability. This vulnerability allows a local attacker with low privileges to access sensitive information from the kernel memory by exploiting a flaw in the Intel Graphics Driver for Windows