Ένα podcast που λεγόταν 99% Invisible έκανε το ηχοσύστημα των Mazda να καταρρεύσει πλήρως
Όταν ένα podcast με τίτλο “99% Invisible” έκανε το infotainment των Mazda να καταρρεύσει — όλα εξαιτίας ενός συμβόλου.
Κανείς δεν περίμενε ότι ένας απλός τίτλος podcast θα μπορούσε να διαλύσει ένα αυτοκίνητο. Κι όμως, το 2014, οδηγοί Mazda που προσπάθησαν να ακούσουν το “99% Invisible” είδαν το ηχοσύστημά τους να μπλοκάρει εντελώς. Το πρόβλημα δεν ήταν το επεισόδιο, ούτε ο ήχος. Ήταν ο τίτλος. Ένα απλό “%I” έφτανε για να προκαλέσει αλυσιδωτή κατάρρευση σε όλο το σύστημα.
Η φράση “99% Invisible” ακουγόταν αθώα, αλλά για τα συστήματα Mazda Connect, έκρυβε κάτι επικίνδυνο. Το πρόβλημα κρυβόταν στο “%I”. Σε πολλές γλώσσες προγραμματισμού, ειδικά σε παλιότερες εκδόσεις της C και της C++, το σύμβολο % δεν διαβάζεται σαν γράμμα. Είναι ειδικός χαρακτήρας που λέει στον υπολογιστή ότι ακολουθεί μια εντολή μορφοποίησης. Το “%I” μπορεί να σημαίνει ημερομηνία, ώρα, ή άλλη εντολή, και απαιτεί συγκεκριμένο είδος πληροφορίας για να δουλέψει.
Το αποτέλεσμα ήταν ένα κανονικό ψηφιακό meltdown. Μόλις το ραδιόφωνο του Mazda προσπαθούσε να διαβάσει το όνομα του αρχείου ή του podcast, πίστευε ότι του έδωσαν εντολή. Δεν υπήρχε όμως τίποτα που να αντιστοιχεί σ’ αυτή την εντολή, κι έτσι ολόκληρο το infotainment system κρασάριζε. Δεν έμενε εκεί. Ξεκίναγε να κάνει επανεκκίνηση ξανά και ξανά, σε έναν αέναο κύκλο αποτυχημένης λειτουργίας, χωρίς να αφήνει τον χρήστη να κάνει τίποτα.
Το ζήτημα δεν ήταν αστείο. Πολλά Mazda 3 χρειάστηκαν αλλαγή μονάδας ή αναβάθμιση λογισμικού στην αντιπροσωπεία. Οι ιδιοκτήτες έκαναν καταγγελίες σε φόρουμ, Reddit και τεχνικά site, με τους μηχανικούς να ψάχνουν απεγνωσμένα τι μπορεί να προκάλεσε το σφάλμα. Κανείς δεν φανταζόταν πως η αιτία ήταν ο τίτλος ενός διάσημου podcast που μιλάει για design.
Η Mazda δεν είχε προβλέψει ότι το λειτουργικό της σύστημα θα μπέρδευε γράμματα με εντολές. Στην ουσία, το “%I” εκτελούνταν σαν κώδικας, σε ένα περιβάλλον που δεν έπρεπε ποτέ να εκτελεί τέτοιες συμβολοσειρές. Δεν υπήρχε απομόνωση ανάμεσα σε δεδομένα και λειτουργίες — μια από τις πιο βασικές αρχές ασφαλείας στο software engineering.
Το περιστατικό έμεινε γνωστό στην κοινότητα των developers ως ένα από τα πιο αλλόκοτα format string bugs σε καταναλωτική συσκευή. Δεν ήταν ούτε επίθεση, ούτε χάκινγκ. Ήταν απλώς κακός κώδικας. Κάποιος, κάπου, ξέχασε να πει στον υπολογιστή ότι “99% Invisible” είναι τίτλος podcast και όχι προγραμματιστική εντολή. Κι αυτός ο κάποιος δημιούργησε εκατοντάδες μικρά, επαναλαμβανόμενα τεχνολογικά ναυάγια — όλα στα παρμπρίζ των ανυποψίαστων οδηγών.