Προθερμαίνουμε το φούρνο στους 180°C. Ξύνουμε, πλένουμε και τρίβουμε τα καρότα στον τρίφτη. Τα βάζουμε σε μεγάλο μπολ με το ξινόγαλο, το ελαιόλαδο, τα αβγά, τη ζάχαρη, το ξύσμα πορτοκαλιού και τη βανίλια και ανακατεύουμε καλά το μείγμα. Σε άλλο μπολ ανακατεύουμε αλεύρι, σόδα, μπέικιν, αλάτι και τα μπαχαρικά. Ρίχνουμε το μείγμα του αλευριού στα υπόλοιπα υλικά και ανακατεύουμε καλά μέχρι να ενωθούν. Προσθέτουμε στο τέλος τα καρύδια, τα οποία καβουρδίζουμε ελαφρά.
Γεμίζουμε με το μείγμα κατά τα 2/3 χάρτινες θήκες ψησίματος, που τοποθετούμε σε φορμάκια και ψήνουμε για 20 λεπτά περίπου, μέχρι να φουσκώσουν και να ροδίσουν. Αφήνουμε τα cupcakes να κρυώσουν πριν ξεφορμάρουμε.
Για το γλάσο, χτυπάμε στο μίξερ χειρός ή με το σύρμα των αβγών τυρί και βούτυρο, μέχρι να γίνουν μια λεία κρέμα. Προσθέτουμε τη ζάχαρη και χτυπάμε το μείγμα. Γαρνίρουμε την επιφάνεια των cupcakes με το γλάσο μας.