only the flush_old_exec() function is protected. this is clearly not enough. In particular, copy_from_user() may sleep, so during args/env copying a thread can be blocked. Args/environment are copied after must_not_trace_exec() (which checks if a binary is being traced), but before compute_creds() (which sets new euid). At this moment, a binary can be attached with ptrace, even in case of kernel-2.2.17-14.i386.rpm. Contact nergal.pl for a patch and additional info.
Fixed by the errata 2.2.19 kernel