Preheat oven to 350°F (175°C). Line a 12-cup muffin tin with paper liners.
In a large bowl, whisk together flour, sugar, baking soda, salt, and cocoa powder.
In a separate medium bowl, whisk together vegetable oil, eggs, red food coloring, and vanilla extract.
In a small bowl, whisk together buttermilk and white vinegar. Let stand for a few minutes to curdle.
Add the wet ingredients to the dry ingredients and mix until just combined. Do not overmix.
Gradually add the buttermilk mixture to the batter and stir until smooth.
Divide the batter evenly among the prepared muffin cups, filling each about two-thirds full.
Bake for 18-22 minutes, or until a toothpick inserted into the center comes out clean.
Let the cupcakes cool in the muffin tin for a few minutes before transferring them to a wire rack to cool completely.
Frosting Preparation
In a large bowl, beat together the softened cream cheese and butter until smooth and creamy.
Gradually add the powdered sugar, one cup at a time, mixing on low speed until incorporated. Increase speed to medium-high and beat until light and fluffy.
Stir in the vanilla extract and milk (or cream) until the frosting reaches desired consistency.
Assembly
Once the cupcakes are completely cool, frost them with the cream cheese frosting.
Notes
For best results, ensure all ingredients are at room temperature before starting.