Un hook di Git è uno script eseguibile che viene eseguito automaticamente quando Git raggiunge determinati eventi del repository, come la creazione di un commit, i controlli di merge, la convalida dei push o gli aggiornamenti lato server. Gli hook possono essere locali alla macchina di uno sviluppatore oppure gestiti da un server Git, e sono spesso usati per imporre politiche, generare artefatti, firmare release o rifiutare modifiche indesiderate prima che vengano applicate.
Gli hook di Git sono importanti nella sicurezza informatica perché si trovano al confine tra il contenuto del codice e l'esecuzione di comandi. Se un attaccante può influenzare un hook, sostituirne uno o indurre una piattaforma a trattare dati forniti dall'utente come un hook, può ottenere l'esecuzione arbitraria di codice sotto l'account che esegue Git o il servizio di hosting. I difensori considerano quindi i percorsi degli hook, i permessi e la convalida lato server come controlli sensibili. Le protezioni comuni includono limitare chi può scrivere gli hook, eseguire i servizi con privilegi minimi e rivedere l'attività degli hook alla ricerca di comandi shell inattesi.


