As I know C++ allows running arbitrary code before main too - for constructors of global variables. Does it bring security risks too?
(In practice _start calls __libc_start_main, a libc function that handles all of that).