The Bosnia international has managed just 56 appearances in three-and-a-half seasons on Merseyside.
He was brought in by then-Toffees manager Roberto Martinez from Hungarian side Ferencvaros in 2014.
The 25-year-old will now have the opportunity to play under Tony Pulis at the Riverside.
Boro are currently eighth on the Championship table and remain in the hunt for a play-off place.
We're delighted to announce the loan signing of @Mo_Besic from @Everton
— Middlesbrough FC (@Boro) January 31, 2018