Thursday, April 16, 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.

More articles


  1. Hacking Tools Online
  2. Hacking Tools For Games
  3. Hack Tools
  4. Hack Tools Download
  5. Hacking Tools Hardware
  6. Hacking Tools For Beginners
  7. Hack Tools Online
  8. Hacker Techniques Tools And Incident Handling
  9. Hacking Tools For Windows
  10. Hacking Tools
  11. Pentest Tools Apk
  12. Pentest Tools Linux
  13. Hacking Tools Online
  14. Black Hat Hacker Tools
  15. Hacker Tools For Mac
  16. Pentest Tools Windows
  17. Pentest Tools Android
  18. Hacker Tools Github
  19. Tools For Hacker
  20. New Hack Tools
  21. Game Hacking
  22. Hacking App
  23. Pentest Tools For Mac
  24. Hack Tools Github
  25. Pentest Reporting Tools
  26. Easy Hack Tools
  27. Install Pentest Tools Ubuntu
  28. Hack Tools Github
  29. Hacking Tools Free Download

No comments: