In modern Hebrew, כרוב means "cabbage", besides the biblical meaning "cherub". Are these meanings related in any way?
The pair of modern Hebrew words homonyms "כְּרוּב", meaning "cherub" and "cabbage", have completely unrelated etymologies. And the first meaning is much older.
The word "כְּרוּב" for cherub of course goes back to the Biblical Hebrew "כרוב", probably pronounced something like /kəˈruːv/. That word is 3000+ years old,1 and derives from a proto-Semitic root which means roughly "one who blesses", with cognates like Akkadian "𒅗𒊑𒁍" (ka-ru-bu), so the root is thousands of years older still.
There is no Biblical Hebrew word for cabbage, because cabbage was brought to the Levant by the Romans.2 The name the Romans used for it was "brassica", but almost nobody ended up with that name;3 almost all near Eastern cultures ended up borrowing Greek κράμβη (/ˈkram.be/, assuming it was borrowed via Ptolemaic Egypt). And that's where the modern Hebrew word pronounced /ˈkʁuv/ ultimates comes from.4
1. It's in the Yahwist portions of Genesis, after all.
2. Of course there are significantly older cultivars of the same species, and wild varieties are even older. But those aren't "cabbage"; we have different—and unrelated—names for them, like "kale", and so did the Romans, Greeks, Celts, etc.
3. Even the Romance languages mostly use words descended from a different Latin word that meant "stalk".
4. The direct source is Aramaic "krb'", as fdb's answer explains.