Skip to content

libxul causes segmentation fault (segfault) #2714

@opsec-ee

Description

@opsec-ee

libxul causes segmentation fault (segfault) in Firefox on linux ( machine arch linux ).

The Issue

Process: Firefox MainThread (PID 74835)
Fault: Segmentation fault at memory address 0 (null pointer dereference)
Location: Inside libxul.so (Firefox's core rendering engine library)
Signal: Process terminated with signal 11 (SIGSEGV)

Actual:|

kernel: MainThread[74835]: segfault at 0 ip 00007d062c7950c6 sp 00007ffd1cb3c380 error 6 in libxul.so[71940c6,7d0628318000+6cc5000] likely on CPU 7 (core 12, socket 0)
kernel: Code: 15 d7 eb d5 02 48 8d 3d ee aa 0d fa 45 31 f6 89 de 89 c2 31 c0 ff 15 11 dd d5 02 48 8b 0d 22 dd d5 02 48 89 01 b8 7b 00 00 00 <49> 89 06 ff 15 09 dd d5 02 48 8d 05 30 dc 09 fa 48 8b 0d 03 dd d5
firefox[24957]: [Parent 24957, IPC I/O Parent] WARNING: process 74835 exited on signal 11: file /usr/src/debug/firefox/firefox-142.0.1/ipc/chromium/src/chrome/common/process_watcher_posix_sigchld.cc:134

Key Details

Instruction Pointer: 0x00007d062c7950c6 - where the crash occurred
Stack Pointer: 0x00007ffd1cb3c380 - current stack location
Error Code: 6 (attempted to write to a read-only or unmapped memory region)

The assembly code shows it was trying to execute 49 89 06 (which is mov %rax,(%r14)) when it crashed, suggesting it attempted to write to a null pointer stored in the R14 register.

Likely Causes

Memory corruption - Something overwrote a pointer with null
Use-after-free - Accessing freed memory that got zeroed
Uninitialized pointer - Using a pointer before it was properly set
Race condition - Multi-threaded access corrupted the pointer

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions