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.

Read more

  1. Hack App
  2. Hacks And Tools
  3. Hack Tools Download
  4. Pentest Tools For Windows
  5. Black Hat Hacker Tools
  6. Pentest Tools Nmap
  7. Ethical Hacker Tools
  8. Hacking Tools 2019
  9. What Is Hacking Tools
  10. How To Install Pentest Tools In Ubuntu
  11. Hack Rom Tools
  12. Best Hacking Tools 2019
  13. Hacking Tools Windows
  14. Pentest Tools For Android
  15. Hackrf Tools
  16. Hack Tools Mac
  17. Hack Tools Online
  18. How To Make Hacking Tools
  19. Hacking Tools Name
  20. Hacking Tools For Windows 7
  21. Hacking Tools Pc
  22. Pentest Tools Subdomain
  23. Hack And Tools
  24. Hack Tools 2019

Sem comentários: