è a rischio per una grave vulnerabilità di Git 2.6.4, incluso nel pacchetto.
Si espone il sistema ad attacchi con esecuzione di codice da remoto.
Nonostante sia stata pacciata già dal 17 marzo con la versione 2.7.4, Apple non ha ancora provveduto ad aggiornare il pacchetto.
Ho letto la notizia in MacWorld che rinvia per OS X al blog RachelByTheBay https://rachelbythebay.com/w/2016/04/17/unprotected/" onclick="window.open(this.href);return false;
La verifica si fa con
Codice: Seleziona tutto
git --version
Codice: Seleziona tutto
git versione 2.6.4 (Apple Git-63)
dovrebbe aggiornarselo da solo.
Il problema è che in El Capitan per via del SIP non è possibile scrivere in alcune cartelle, come /usr e /bin anche come root.
Rachel Kroll indica la soluzione in un impedimento di esecuzione, se eventualmente si verificasse un tentativo di intrusione con esecuzione da remoto, cambiando i permessi.
chmod -x /Applications/Xcode.app/Contents/Developer/usr/bin
Ma come fare se si hanno solo i Command Line DevTools, come nel mio caso?
Probabilmente
Codice: Seleziona tutto
chmod -x /Library/Developer/CommandLineTools/usr/bin
I binari della versione di Git 2.7.4 sono qui https://www.kernel.org/pub/software/scm/git/" onclick="window.open(this.href);return false;
Mentre da GitHub è disponibile per OS X con l’installer Universal Git 2.8.1 del 5 Aprile, successivo alla Patch, quindi valido.
Avendo il SIP disabilitato l'ho quindi scaricato (non si dovrà fare caso alla dizione Mavericks, va bene per OS X 10.11.
https://git-scm.com/download/mac" onclick="window.open(this.href);return false;
Chi avesse il System Integrity Protection (rootless) abilitato potrà accedere a Recovery, disabilitarlo
Codice: Seleziona tutto
csrutil disable; reboot
poi di nuovo accedere a Recovery
Codice: Seleziona tutto
csrutil enable; reboot
1) Ho disinstallato Git.
Sono entrato in /usr/local/git, dopo aver già cercato una soluzione su GitHub, ed ho trovato unistaller.sh, l’ho aperto e ho copiato il codice, poi l’ho eseguito su Terminale
Codice: Seleziona tutto
bin/bash -e
if [ ! -r "/usr/local/git" ]; then
echo "Git doesn't appear to be installed via this installer. Aborting"
exit 1
fi
echo "This will uninstall git by removing /usr/local/git/, and symlinks"
printf "Type 'yes' if you are sure you wish to continue: "
read response
if [ "$response" == "yes" ]; then
# remove all of the symlinks we've created
pkgutil --files com.git.pkg | grep bin | while read f; do
if [ -L /usr/local/$f ]; then
sudo rm /usr/local/$f
fi
done
# forget receipts.
pkgutil --packages | grep com.git.pkg | xargs -I {} sudo pkgutil --forget {}
echo "Uninstalled"
# The guts all go here.
sudo rm -rf /usr/local/git/
else
echo "Aborted"
exit 1
fi
exit 0
- Ho riavviato e adesso