Is a ground/common needed for proper CAN bus communication?
A perfect, theoretical, differential system can run with no ground, because the input can always do (A-B) without worrying about the absolute values of A or B.

Unfortunately, CAN is not such a system, and the receiver will have limits to its 'common mode' capability, beyond which it be damaged.  So you have to have a ground to keep the common mode voltages within limits.  'Common mode' just refers to stuff (voltage, in this case) which is common to both wires.

There are other ways of building receivers which are far freer of this sort of constraint - for example an opto isolator can do the (A-B) detection with maybe 1000s of volts of common mode offset.  Transformers are often used too (e.g. in twisted-pair Ethernet, which has no ground).  But for normal CANbus, you need a ground.