Preheat oven to 350°F (177°C). Grease and line two 9-inch cake pans with parchment paper.
Whisk flour, baking soda, cocoa powder, and salt in a bowl. Set aside.
Beat butter and sugar until light and fluffy. Add egg yolks one by one, then mix in vanilla and vinegar.
Add oil and mix until smooth. Add red food coloring and blend well.
Add dry ingredients and buttermilk alternately, starting and ending with dry ingredients. Do not overmix.
Whip egg whites to stiff peaks and gently fold into batter.
Divide batter into pans and bake for 28–32 minutes or until a toothpick comes out clean.
Cool in pans for 15 minutes, then transfer to a rack and cool completely.
Make frosting by beating cream cheese and butter until smooth. Add sugar, vanilla, and salt and beat until fluffy.
Assemble cake, frost evenly, chill for 30 minutes, then slice and serve.