Il bug (pronuncia inglese /bʌg/; in italiano /ˈbaɡ/[1]), in italiano anche baco[2], nell'ambito della programmazione informatica, è un'anomalia che porta al malfunzionamento di un software, per esempio producendo un risultato inatteso o errato, tipicamente dovuto a un errore nella scrittura del codice sorgente di un programma. Un bug, in sostanza, è un difetto software di tipo funzionale, nonostante a volte il termine venga usato per indicare anche falle di sicurezza (vulnerabilità) nonché per gravi carenze di prestazione. Esempi di bug sono quelli che portano ai Blue Screen of Death su Windows, cioè schermate blu con messaggi di errore che hanno interessato soprattutto le prime versioni del sistema operativo. Altri tipi di errori, seppur differenti, che si avvicinano ai bug sono i glitch e gli exploit, diffusi spesso nei videogiochi.[3]
Un programma contenente bachi che interferiscono con la sua funzionalità è detto in gergo buggato (in inglese buggy), mentre l'atto di correzione dagli errori è detto debug o bugfixing.