Allen Rueter points out that one way to kill a defunct process is to kill its parent or child:

# ps -ef | grep '<defunct>\|PPID'
UID   PID  PPID  C    STIME TTY      TIME CMD
zzz 13868     1  0                   0:00 <defunct>
# ps -ef | grep '13868\|PPID'
UID   PID  PPID  C    STIME TTY      TIME CMD
zzz 13868     1  0                   0:00 <defunct>1
zzz 16596 13868  0                   0:00 a.out
# kill -9 16596