Faits: A. Le 6 juin 2012, A._ a été arrêté dans le cadre d'une instruction ouverte contre lui par le Ministère public de l'arrondissement de Lausanne (ci-après: le Ministère public) pour vol, tentative de vol, violation de domicile, tentative de violation de domicile et dommages à la propriété. Il lui est reproché d'avoir commis avec des comparses quatre vols par effraction et une tentative de vol par effraction entre le 25 mai et le 6 juin 2012. Il a été placé en détention provisoire. Par ordonnance du 31 août 2012, le Tribunal des mesures de contrainte du canton de Vaud (ci-après: le Tmc) a prolongé cette détention jusqu'au 6 décembre 2012, en raison de risques de fuite et de collusion. A._ a contesté cette ordonnance auprès de la Chambre des recours pénale du Tribunal cantonal du canton de Vaud (ci-après: le Tribunal cantonal), qui a rejeté son recours par arrêt du 18 septembre 2012. Relevant qu'il existait des charges suffisantes à l'encontre du prénommé, le Tribunal cantonal a considéré que le maintien en détention était justifié en raison de risques de fuite et de réitération, le principe de proportionnalité étant en outre respecté. B. Par recours du 9 octobre 2012, A._ demande au Tribunal fédéral de réformer cet arrêt en ce sens que sa libération immédiate est ordonnée, subsidiairement d'ordonner sa libération moyennant l'obligation de se présenter tous les deux jours au poste de police le plus proche du centre zurichois d'accueil des migrants où il résiderait. Il requiert en outre l'octroi de l'assistance judiciaire. Le Tribunal cantonal se réfère aux considérants de son arrêt. Le Ministère public conclut au rejet du recours. Le 25 octobre 2012, le recourant a renoncé à présenter des observations complémentaires. 