I've seen the same issue starting with iOS 7.1. The crash happens if you call resume on a task with state NSURLSessionTaskStateCompleted (maybe for NSURLSessionTaskStateCanceling too). I think this is a bug introduced in iOS 7.1 because under iOS 7 the resume was ignored.
What I did is the following:
if (task.state == NSURLSessionTaskStateSuspended) {
[task resume];
}
This should prevent the crash from happening. And only tasks that are suspended can be resumed anyway.
It's still frustrating since it worked without issues under iOS 7 for months and now a released app generates lots of crashes because of this.