Preheat your oven to 350°F (175°C) and line a muffin tin with cupcake liners.
In a large bowl, whisk together the flour, sugar, baking soda, cocoa powder, and salt until well combined.
In another bowl, mix the vegetable oil, buttermilk, eggs, red food coloring, vanilla extract, and vinegar until smooth.
Gradually add the wet ingredients to the dry ingredients, stirring until just combined. Do not overmix.
Divide the batter evenly among the cupcake liners, filling each about two-thirds full.
Bake for 18-20 minutes or until a toothpick inserted in the center comes out clean. Allow to cool in the pan for 5 minutes, then transfer to a wire rack to cool completely.
For the frosting, beat the softened cream cheese and butter together until smooth. Gradually add the powdered sugar and vanilla extract, mixing until creamy. If the frosting is too thick, add milk one tablespoon at a time until desired consistency is reached.
Once the cupcakes are completely cool, frost them generously with the cream cheese frosting.