Se un'applicazione è vulnerabile, è per definizione sfruttabile. Tu dici che un'app è "vulnerabile", ma in realtà è una riduzione della frase "vulnerabile allo sfruttamento". I due concetti sono approssimativamente sinonimi.
La vulnerabilità prende in considerazione il framework. Non si vedono exploit di overflow del buffer nei programmi Python perché il framework protegge da questo. Ma non protegge in modo implicito da attacchi di iniezione o archiviazione insicura, quindi ti aspetti di vedere gli exploit rivolti a quelle aree.
Si noti che il framework non ha alcuna vulnerabilità; Python non è suscettibile agli attacchi di iniezione, né è Java, ma né il framework protegge contro tali attacchi nello stesso modo in cui lo fanno per i buffer overflow. Quindi, mentre Python non è vulnerabile, potrebbe esserci un programma scritto in Python.