A suicide bomber struck an upmarket district of the Afghan capital Kabul on Tuesday near a hotel and guest house frequented by foreigners, killing eight people and wounding another 40, officials said.