She's over 18, so no - you can't police who SHE sleeps with,
I would have been more bothered about why she's upset & what's going on with her parents that she's been locked out. I'd also be screening whatever that story is with a bullshit detector, but first instinct must surely be to believe her, & be concerned for her?
You made a rod for your own back by first 'asking' - therefore cementing in his mind that it was up to him - then 'telling' him once you already knew that his preferred outcome was opposite to yours. That was only end in a confrontational win/lose situation.
That's probably why he came back with his "but I pay for my digs" comment. It was his way of defending his challenge to your authority, & you maybe need to take issue with that, but NOT NOW as it is a separate issue. (Deal with it by pointing out that if you were a landlady with lodgers, you could have a 'no overnight guests' rule, becuase it is YOUR house, not his ... but really - I wouldn't lock horns over that one, as you're looking for a win/win here, surely, not a chance to win while your son feels that he has 'lost'?)
She seems happy to share the bed. Certainly hasn't said 'I'll sleep on the couch'.
And there was your solution.
ENTHUSIASTIC consent - remember? Going along with it because you feel you don't have much option isn't consent.
It should never have been up to your son where she sleeps.
Unless you want to be draconian about guests & alienate your son, it shouldn't have been up to you either.
You should have asked HER. Empathised with her upset, asked her if she needs to borrow overnight things, has she messaged her parents to let them know she can't get in but is SAFE with your son, not to worry, his mother is here too ...
then ask her if she'd like you to make up the couch for her.
& then stopped worrying. Because even if you'd forced your son's hand & done a myhousemyrules on him, you know one of them would have sneaked to join the other in the dead of night anyway, if that's what they both wanted?