The only free and comprehensive online etymological dictionary of the Spanish language
gato (Noun) "cat"
10th cent. From Late Latin cattus 'id.' The voicing of Latin /k/ to Spanish /g/ is unexplained. Borrowed from an Afro-Asiatic source (compare Coptic klít "cat").
Listed by Tibón (1988) as a particularly ancient hypocorism for physically-gifted individuals who showed agility and cat-like reflexes. The nickname fossilized as the surnames Gato, Gatón, and Gata.
Indo-European
Romance
Asturian gatu, Portuguese gato, Galician gato, Catalan gat, French chat, Italian gatto, Aromanian cãtushe, Romanian cătușă, Sardinian batu
Celtic
Old Irish catt "cat," Welsh cath 'id.,' Cornish kath 'id.,' all borrowed from Latin cattus
Germanic
Proto-Germanic *kattu- "cat," which may be borrowed from Latin cattus or borrowed from another language. Old Norse kǫttr "cat," Old High German kazzo "cat," Old Saxon katto 'id.,' Old Frisian katte 'id.,' Old English catt (English cat)
Balto-Slavic
Russian kot "tomcat," Lithuanian katė̃ "cat," borrowed from either Latin cattus or Proto-Germanic *kattu-
Hellenic
Ancient Greek κάττα (kátta) "cat," Modern Greek γάτα (gáta) 'id.'
Armenian
Old Armenian katu "cat," borrowed from an unknown language
Basque
Basque katu "cat," (dialects) gat(h)u 'id.,' borrowed from Late Latin cattus
Afro-Asiatic
Semitic
Arabic qiṭṭ "cat," Syriac qaṭṭu 'id.,' possibly borrowed from another language

The sound shift of /k/ to /g/ did not affect c-initial words in Latin, so we are left with the question of whence the g- in gato? Considering cognates in Catalan gat and Italian gatto, we could reconstruct a Vulgar Latin variant *gattus but this looks unmotivated. To posit that the word was borrowed from another language (Basque?) would be at odds with the historical record.