// aud.lc3 · AudioToolbox · LC3 codec gate · CVE-2026-112638 // LC3 codec AudioConverterNew reachability probe // C twin of the Swift POC: drives AudioConverterNew with the LC3 format id at two // rate/channel shapes. The entitlement check is an app-side observation; a standalone // binary carries no entitlements, so only the codec gate itself is probed here. // Build: clang -O2 -o cve-2026-112638 CVE-2026-112638.c -framework AudioToolbox -framework CoreFoundation // Run: ./cve-2026-112638 #include #include static void audio_converter(uint32_t format, double rate, uint32_t channels) { AudioStreamBasicDescription in = {0}; in.mSampleRate = rate; in.mFormatID = format; in.mFramesPerPacket = 1; in.mChannelsPerFrame = channels; AudioStreamBasicDescription out = {0}; out.mSampleRate = rate; out.mFormatID = kAudioFormatLinearPCM; out.mFormatFlags = kAudioFormatFlagIsFloat | kAudioFormatFlagIsPacked; out.mBytesPerPacket = 4; out.mFramesPerPacket = 1; out.mBytesPerFrame = 4; out.mChannelsPerFrame = 1; out.mBitsPerChannel = 32; AudioConverterRef c = NULL; OSStatus st = AudioConverterNew(&in, &out, &c); if (c) AudioConverterDispose(c); char four[5] = {0}; for (int i = 0; i < 4; i++) { uint8_t b = (uint8_t)(format >> (24 - 8 * i)); four[i] = (b >= 0x20 && b < 0x7f) ? (char)b : '?'; } printf("AudioConverterNew('%s', %.0f Hz, %u ch) = %d\n", four, rate, channels, (int)st); } int main(void) { audio_converter(0x6C633320, 48000, 1); // 'lc3 ' 48 kHz mono audio_converter(0x6C633320, 16000, 2); // 'lc3 ' 16 kHz stereo printf("CVE-2026-112638 · LC3 codec gate probed\n"); return 0; }