I am a (rather heterodox) Catholic, so I don't know whether and how my Answer counts.
I simply wanted to enter a comment in reply to Paul Chernoch, regarding the link he provided to the article The Killings of Numbers 31 (@apologeticspress.org) by AP Staff.
But, having read the article, I found what I believe to be a conflict (something close to a contradiction). Here is what the article says, at some point:
However, to allege that the God of the Bible is some sort of “monster”
for ordering Israel to destroy the inhabitants of Canaan exhibits an
ignorance of biblical teaching. Those inhabitants were destroyed
because of their wickedness (Deuteronomy 9:4; 18:9-14).
Looking at the cited passages of Deuteronomy we read, in particular:
... it is (...) because of the wickedness of these nations that the
Lord is dispossessing them before you (Deut 9:4) ... it is
because of such abhorrent practices that the Lord your God is driving
them out before you. (Deut 18:12) [emphasis added]
But if we read from Numbers, cited in the OP Question, we read:
17 Now therefore, kill every male among the little ones, and kill
every woman who has known a man by sleeping with him. 18 But all the
young girls who have not known a man by sleeping with him, keep alive
for yourselves. (Num 31:17-18)
Conclusions
There is an evident contrast between Deuteronomy 9:4;18:12, where the Lord promises to "disposses", to "drive out" the Canaanite nations, and Numbers 31:17-18, where Moses commands to kill and plunder the Midianites. If the reader is ready to say, "Ha, but that was Moses", read on, in particular Numbers 31:25-30 (Disposition of Captives and Booty), where the Lord seems to speak more like a mafia boss than ... the Lord God Almighty.
Maybe it is precisely with (not only these horrors, but mainly) these contrasts in mind that the Catholic Church tried (tried ...) to downplay these narrations as "exaggerations and hyperbole".