Skip to content

libxul causes segmentation fault (segfault) #2714

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions