Daas Z'kenim mibaale hatosafos (ad loc.) cites a midrash that says that K'naan overheard the announcement in verse 22, and went and sodomized Noach. (Cham himself, according to this midrash, did nothing wrong except speak of his father disparagingly and in public.) Verse 24 refers, then, to a grandson as "son (not uncommon, and makes more sense here than referring to Cham, who was not the younges