Write permissions to app/storage need to be granted to the Vagrant VM. The gotcha is you have to do this from the host machine:
chmod -R 777 app/storage
For some reason ~/.composer (or COMPOSER_HOME) will change ownership to root:root. This needs to be owned by the vagrant user:
chown vagrant:vagrant ~/.composer
If you're still getting an exception when running composer install
like this