Tampaknya bahkan jawaban yang saat ini diterima tidak benar-benar menjawab bagian dari pertanyaan Anda bagaimana menghindari seseorang secara tidak sengaja mengakses komit lama, menggunakan status basis kode yang lebih lama di cabang baru dan karenanya memperkenalkan kerentanan lama lagi.
IMHO satu-satunya cara yang tepat untuk mengatasi ini adalah:
dengan mendokumentasikan setiap perbaikan bug serta perbaikan kerentanan secara kaku dalam dokumen "catatan rilis" (atau "log perubahan") dari sistem
dengan memastikan semua pengembang yang mengakses versi kode yang lebih lama pastikan mereka membaca catatan rilis, periksa masalah mana yang telah dipecahkan dalam versi kode yang muncul setelah versi yang akan mereka gunakan
Ketika menggunakan kembali versi yang lebih lama, atau bercabang dari versi yang lebih lama dari basis kode, itu jelas merupakan tanggung jawab para pengembang untuk tidak melakukan hal ini secara membabi buta. Jelas mereka harus memeriksa silang bug dan kerentanan yang sudah diperbaiki, untuk tidak memperkenalkan mereka lagi. Log VCS, bagaimanapun, sebenarnya bukan tempat yang baik untuk menemukan informasi semacam ini, karena biasanya ada semua jenis perubahan yang disebutkan, pada tingkat abstraksi yang terlalu rendah.
Catatan rilis, bagaimanapun, harus mengandung bagian "fitur baru" serta bagian "masalah terpecahkan". Dan yang terakhir harus menjadi tempat pertama untuk memeriksa sebelum bercabang dari versi yang lebih lama.