Memory leak (bellek sızıntısı), programda dinamik olarak ayrılan belleğin (malloc, new gibi komutlarla) kullanıldıktan sonra serbest bırakılmaması durumunda ortaya çıkan bir problemdir. Bu durum özellikle c ve c++ gibi manuel bellek yönetimi gerektiren programlama dillerinde sık karşılaşılan bir sorundur. basitçe ifade etmek gerekirse Program çalıştıkça ayrılan ama serbest bırakılmayan bellek alanları birikir ve sistemin kullanılabilir belleği giderek azalır. Bu da programın performansının düşmesine, hatta sistemin tamamen yavaşlamasına neden olabilir.
Memory leak'i önlemek için programcıların malloc/new ile ayırdıkları her bellek alanını, işleri bittikten sonra mutlaka free/delete ile serbest bırakmaları gerekir. Ayrıca pointer'ların üzerine yazılması sonucu bellek adreslerinin kaybolmaması ve exception handling sırasında bellek temizliğinin unutulmaması da önemlidir. Modern programlama dillerinde garbage collection mekanizması bellek yönetimini otomatik olarak yaparak memory leak riskini büyük ölçüde azaltır, ancak sistem kaynakları için benzer sızıntılar yine de oluşabilir.