Add README with vulnerability descriptions
Browse files
README.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# GGUF Security PoC Files
|
| 2 |
+
|
| 3 |
+
These are proof-of-concept files demonstrating vulnerabilities in GGML's GGUF parser.
|
| 4 |
+
|
| 5 |
+
## poc-stride-overflow.gguf
|
| 6 |
+
Integer overflow in tensor stride (nb[]) calculations. A tensor with ne[0]=2^62 and type F32
|
| 7 |
+
causes nb[1] = 4 * 2^62 = 2^64 which overflows size_t to 0. This bypasses the SIZE_MAX overflow
|
| 8 |
+
check, resulting in a 0-byte allocation for a tensor claiming 2^62 elements. Any access to tensor
|
| 9 |
+
data is a heap buffer overflow.
|
| 10 |
+
|
| 11 |
+
## poc-divzero.gguf
|
| 12 |
+
Division by zero at gguf.cpp:550 when ne[1]=0 with n_dims>=2. The element overflow check
|
| 13 |
+
computes INT64_MAX/ne[1] which is undefined behavior. Causes SIGFPE crash on x86.
|
| 14 |
+
|
| 15 |
+
**Tested against:** ggml commit a8db410 compiled with AddressSanitizer.
|