Preheat the oven to 350F and line a 12-cup muffin pan with paper liners.
Stir the milk and white vinegar together in a measuring cup and let it sit for 5 minutes until slightly curdled - this is your homemade buttermilk.
In a large bowl, whisk together the flour, sugar, baking powder, baking soda, and salt.
Whisk the oil and vanilla into the milk mixture, then pour it into the dry ingredients. Whisk just until smooth - do not overmix or the cupcakes will turn dense.
Divide the batter between the liners, filling each about 2/3 full. Bake for 18-20 minutes, until a toothpick comes out clean. Cool in the pan for 5 minutes, then transfer to a wire rack to cool completely.
For the buttercream, beat the softened butter on medium-high speed for 3 minutes until pale and creamy, then add the powdered sugar in two additions.
Add the heavy cream, vanilla, and salt, then beat for 2 more minutes until light and fluffy.
Frost the completely cooled cupcakes with a piping bag or a small spatula and serve.