I have created a junction object[XYZ] with object ABC and Contact as masters. OWD for ABC and Contact is PRIVATE, no sharing rule for both objects. Profile level access does not have View All / Modify All permission at record as well as object level for Contact. Profile level access has View All permission at record level for ABC.
Documentation says:
If the record has two master records in a many-to-many relationship, the user must have read access to both master records.
On object ABC's page layout I've added a related list for Object XYZ. The related list displays all the records even if user does not have permission for Contact object. I have no idea why.
Any work around, so that related list does not display records if user does not have access to one of the parent in my case that is contact.
This is professional edition org, so customization doesn't seem as an option.