I think it's everybody's fault.
It's the parents' responsibility to know what's going on with their children. In this particular case, the parents should have realized something was not right with their son when he was suspended for fighting. That should have been a huge warning sign that the child needed professional help. Being suspended from school should not have been a way for this young boy to hang around at home by himself. Had he had supervision, he never would have been able to get to the school to shoot others.
This does not leave the school off the hook. It was their responsibility to discipline this young boy as well as follow up on his behavior and demand his parents seek professional counseling for him due to his aggressive behavior. In this. they failed.
The idiot, and I don't hesitate to call this person an idiot, who sold/gave this young boy the gun should be held criminally responsible and put in jail for the maximum amount of time that the law permits. It was this person's direct behavior that allowed this sick and angry young boy to act out his frustrations and kill others.