Maandag 13 April 2020

C++ Std::Condition_Variable Null Pointer Derreference


This story is about a bug generated by g++ and clang compilers (at least)
The condition_variables is a feature on the standard library of c++ (libstdc++), when its compiled statically a weird asm code is generated.


Any example on the link below will crash if its compiled statically:
 https://en.cppreference.com/w/cpp/thread/condition_variable



In this case the condition_variable.wait() crashed, but this happens with other methods, a simple way to trigger it:




If this program is compiled dynamically the crash doesn't occur:

Looking the dissasembly there is a surprise created by the compiler:


Compilers:
    g++  9.2.1+20200130-2
    clang++ v9

Both compilers are generating the "call 0x00"

If we check this call in a dynamic compiled:




The implementation of condition_variable in github:
https://github.com/gcc-mirror/gcc/blob/b7c9bd36eaacac42631b882dc67a6f0db94de21c/libstdc%2B%2B-v3/include/std/condition_variable


The compilers can't copile well this code in static,  and same happens on  other condition_variable methods.
I would say the _lock is being assembled improperly in static, is not exacly a null pointer derreference but the effects are the same, executing code at address 0x00 which on linux is a crash on most of cases.

Related articles
  1. Pentest Tools Windows
  2. Hacking Tools Name
  3. Hacker Tools Mac
  4. Pentest Tools Open Source
  5. Hack Tools Mac
  6. Hacking Tools Windows
  7. Pentest Tools Free
  8. Pentest Tools Free
  9. Github Hacking Tools
  10. Hack Tools Online
  11. Game Hacking
  12. Hacker Tool Kit
  13. Pentest Tools Android
  14. Pentest Tools For Android
  15. Pentest Tools
  16. Pentest Tools Kali Linux
  17. Pentest Tools Tcp Port Scanner
  18. Pentest Tools Tcp Port Scanner
  19. Bluetooth Hacking Tools Kali
  20. Hacker Tools Mac
  21. Pentest Tools Framework
  22. Game Hacking
  23. Kik Hack Tools
  24. Pentest Tools Review
  25. New Hacker Tools
  26. Free Pentest Tools For Windows
  27. Android Hack Tools Github

Geen opmerkings nie:

Plaas 'n opmerking