There is no such thing as recursive 3 (see book).
Nor can you use Containable to limit your find results based on a child condition (see reasoning).
I assume you'll want to do something like this (starting with Garage to reduce one query needed, since it has the user id as a field):
$this->Garage->find('all', array(
'conditions' => array(
'Garage.user_id' => $userId
),
'joins' => array(
array(
'table' => 'vehicles',
'alias' => 'Vehicle',
'type' => 'inner',
'conditions' => array(
'Vehicle.garage_id = Garage.id'
)
),
array(
'table' => 'vehicle_albums',
'alias' => 'VehicleAlbum',
'type' => 'inner',
'conditions' => array(
'VehicleAlbum.vehicle_id = Vehicle.id',
'VehicleAlbum.id' => $vehicleAlbumId
)
)
)
));
Should return result(s) if it is the owner or empty if not.