Preheat oven to 350 degrees F. Grease a 9x13-inch pan and line with parchment if desired.
Whisk flour, cornstarch, baking powder, baking soda, and salt in a bowl. Set aside.
Beat butter on medium-high for 2 minutes. Add sugar and beat 3 to 4 minutes until pale and fluffy.
Add eggs one at a time on medium speed. Add vanilla. Mix until combined.
Add sour cream on low. Mix until just combined (batter may look slightly curdled — this is fine).
Add flour mixture in three additions, alternating with buttermilk in two additions. Mix on low, stopping as soon as each addition is incorporated.
Pour batter into pan. Spread evenly to edges. Bake 28 to 33 minutes until toothpick comes out clean.
Cool completely in pan, at least 1 hour, before frosting.
For buttercream: beat butter 3 minutes until pale. Add powdered sugar cup by cup on low. Add cream by the tablespoon. Add vanilla and salt. Beat on medium 2 minutes until smooth.
Spread buttercream directly onto cooled cake in the pan. Slice and serve.