1. For the cupcakes: Preheat the oven to 350 degrees F. Line a 12-cup muffin tin with paper liners. Sift the flour, granulated sugar, cocoa, baking soda and salt into a large mixing bowl. In another mixing bowl, whisk together the buttermilk, oil, sour cream, food coloring, vinegar, vanilla and egg.
2. Add the buttermilk mixture to the dry ingredients and mix until just combined. Divide evenly among the cupcake liners. Bake until a toothpick inserted in the center of a cupcake comes out with a few moist crumbs, 18 to 20 minutes. Remove the cupcakes from the tin and cool completely on a wire rack.
3. Meanwhile, for the filling: Beat the cream cheese in a large bowl with an electric mixer until smooth and fluffy. Gradually beat in the butter until smooth. Sift the confectioners' sugar over the mixture and beat until smooth. Add the vanilla extract and salt, and beat until light and fluffy. Scrape into a pastry bag fitted with a medium tip. Insert the tip vertically about 1-inch into the top of each cupcake and pipe in some filling. Repeat with the remaining cupcakes. (Wipe off the tip if there are crumbs sticking to it.)
4. For the chocolate glaze: Put the chocolate in a mixing bowl. Heat the cream in a small saucepan over medium heat until it just simmers. Pour the cream over the chocolate and let sit for 1 minute. Then gently stir until smooth and glossy. Cool the glaze slightly. Spread 1 tablespoon of glaze on top of each cupcake or dip the top of the cupcake in the glaze.