// probe.hid · IOKit.framework / GameController.framework · CVE-2026-112515 // HID event path reachability probe // C twin of the Swift POC: dlopens IOKit and GameController, dlsyms the HID entry // points the CVE lives behind, and reports which resolve in this process. // Build: clang -O2 -o cve-2026-112515 CVE-2026-112515.c // Run: ./cve-2026-112515 #include #include #include static void probe(const char *lib, const char **symbols, int n) { void *h = dlopen(lib, RTLD_NOW); if (!h) { printf("x %s\n", lib); return; } printf("ok %s\n", lib); for (int i = 0; i < n; i++) { printf(" %s: %s\n", symbols[i], dlsym(h, symbols[i]) ? "resolved" : "missing"); } } int main(void) { const char *iokit_syms[] = { "IOHIDManagerCreate", "IOHIDDeviceGetProperty", "IOHIDEventCreateCopy", "IOHIDEventSystemClientCreate", "IOHIDEventCreateData", }; const char *gc_syms[] = {"GCController", "GCHIDEventSource", "GCExtendedGamepad"}; probe("/System/Library/Frameworks/IOKit.framework/IOKit", iokit_syms, 5); probe("/System/Library/Frameworks/GameController.framework/GameController", gc_syms, 3); printf("CVE-2026-112515 · HID path probed\n"); return 0; }