This issue is not often mentioned in text books. Within Matlab, it is implemented with the filtfilt function. It is sometimes called forward-backward filtering, and works with other filters than Butterworth's. One of the few references I am aware of is: F. Gustafsson, Determining the initial states in forward-backward filtering, IEEE Transactions on Signal Processing, 1996. It bears some weak similarities with Linkwitz-Riley filters, by cascading two filters in a specific fashion to reduce limitations caused by a single filter. Moreover, I cannot take out of my mind that 20 years ago, when I discovered the filtfilt function, a skilled colleague told me it was called (phonetically) a L*n[q/k][w/v]i[z/st/tz] filter (I remember I heard Lunqvist back then), although I never found a reference. He was apparently wrong, additional historical connections would be welcome.
The whole operation, interpreted in a frequency domain, amounts to multiplying the filter frequency response by its complex conjugate. Hence, the resulting "squared-filter" is real, and possesses a zero-phase, i.e. no delay, at the expense of non-causality. Its order is the double of the original filters, and may hit unstability problems when quantifying its coefficients. Its attenuation at cut-off frequency also doubles.
Related discussions can be found in
What is the advantage of MATLAB's filtfilt or
Real time digital filter with zero phase.