Spanish authorities blame the crash on pilot error, saying the pilots failed to extend the MD-80 airplane's takeoff flaps and slats. However, a warning alarm that ensures that pilots don't leave the flaps and slats retracted failed to sound because the maintenance system had been infected with a Trojan application.
In a blog post, Rick Wanner of the SANS Internet Storm Center, writes:
it seems clear to me that this accident was caused by the failure of a number of controls leading to a disastrous outcome. Clearly the SpanAir diagnostic system (a detective control) designed to detect anomalies in the airliners system failed, possibly due to a Trojan.
Still, the pilots are not free from blame. Wanner says:
the pilots bypassed part of their pre-takeoff checklist, leaving the flaps and slats in a position not recommended for takeoff.