Preheat oven to 350 degrees. Line a muffin pan with cupcake liners or spray with nonstick cooking spray. In a large bowl, whisk together the flour, baking powder, baking soda, cinnamon and salt.
In a separate bowl, whisk together the buttermilk, sugar, eggs, oil, juice, zest and vanilla.
Stir the wet ingredients into the dry ingredients until just combined. Fold in the cranberries. Fill the muffin tin 3/4 of the way full with batter.
In a small bowl, combine all the topping ingredients and mix with a fork. Sprinkle the topping over the muffins and bake for 25 minutes.