Preheat your oven to 350°F (175°C). Line your muffin tin with cupcake liners.
Sift together the all-purpose flour, baking soda, baking powder, salt, and unsweetened cocoa powder in a large bowl. Set aside.
In another bowl, whisk the vegetable oil and granulated sugar until combined. Add the eggs one at a time, beating well after each addition. Stir in the red food coloring, vanilla extract, and white vinegar.
Add the dry ingredients to the wet ingredients in three batches, alternating with the buttermilk. Begin and end with the dry ingredients. Mix until just combined, being careful not to overmix.
Divide the batter evenly among the cupcake liners, filling each about two-thirds full. Bake for 18-22 minutes or until a toothpick inserted into the center comes out clean.
Remove the cupcakes from the oven and let them cool in the pan for 5 minutes. Then transfer to a cooling rack to cool completely.
Beat the softened cream cheese and unsalted butter together until smooth and creamy. Gradually add the powdered sugar, one cup at a time, beating well after each addition. Stir in the vanilla extract. Add a teaspoon of milk or cream if frosting is too thick.
Once the cupcakes are completely cool, frost each generously using a spatula or piping bag, swirling the frosting on top in a circular motion.
Serve fresh, or store in an airtight container in the refrigerator for up to 3 days. Bring to room temperature before serving.