マツダ車載システム、あるポッドキャストで盛大に逝くと話題に

挿話
今日知ったこと:マツダのインフォテインメントシステムが、あるプログラミングのバグによって動作不能になることがあった。これは、ポッドキャスト「99% Invisible」を再生しようとすると発生した。ソフトウェアが文字列としての「% I」を命令として認識してしまったためである。

どんな話題?

シアトルのラジオ局からの信号が原因で、マツダ車のインフォテインメントシステムが故障するという、なんとも不思議な事件が発生!記事によると、特定のラジオ番組を受信した際にシステムがフリーズしたり、完全に動作不能に陥るという報告が相次いだとのことです。まるでSF映画のような展開ですね!

多くのユーザーが同様の症状を経験しており、「bricked(レンガ化)」という表現が飛び交っていました。これはシステムが完全に使い物にならなくなった状態を指すのですが、私の調査(友人であるマツダディーラーの整備士への聞き込み)では、多くのケースは再起動で回復しているようです。あくまで一時的なクラッシュだった可能性も。🤔

原因は、インフォテインメントシステムがラジオ番組のタイトルを処理する際に、入力値の検証を怠っていたことにあると推測されています。専門用語で言うと、「サニタイズされていない入力値」が原因ということです。まるで、プログラムがラジオ番組のタイトルを「命令」と誤認したかのよう… ちょっと笑えますが、同時にシステム開発におけるセキュリティの重要性を改めて考えさせられます。 「printf(“%s”, title)」ではなく「printf(title)」とでも書かれていたのでしょうか… ゾッとしますね。

この事件を通して、プログラミングにおける入力値の重要性と、思わぬバグで日常生活に支障をきたす可能性を改めて認識しました。技術の進歩は素晴らしい一方で、その裏にはこんな落とし穴もあるんですね。皆さんも、ソフトウェアのセキュリティには気を付けてくださいね! 😱


みんなの反応


シアトルのラジオ局にチューニングしたマツダのシステムでも同じ現象が起きてたんだってよ。マジかよ…
Reply Allって名前、数年ぶりに聞いたわw 懐かしい…
関係ありげなXKCD置いてくわね。(画像表示)
そのエピソードで一番面白かったのは、原因究明のために作った試聴用ポッドキャストの数々だよ。特にこれ! 88% (P(A(R(E(N(T(H(E(T(I(C(A(L(S) ヤバくない?
昔勤めてた会社のCEOの名前が*Ax:son*だったんだけどさ。ググれなかったんだよ、マジで。最近は少しマシになったけど。
昔さ、「Nameofsomeone1%」をパスワードに使ったことがあってさ。パスワードは○ヶ月ごとに変更で、数字と特殊文字必須だったんだ。そしたらプログラムがレポート出力拒否したんだよ!俺だけ。 「Nameofsomeone1!」に変えたら普通に動いたんだけど…謎すぎる…
説明書きは必ず読もうね!(棒読み)
冷却水温が0℃だとエンジンかからないアプリリアのバイクの話知ってる?温度読み取り値がNULLになって「温度情報がない=高温の可能性がある=始動禁止」って判断するらしいんだよ…アホくさ!
Reply Allのポッドキャスト、マジ懐かしい… また聞きたい…
ブリックって言うけど、一時的にフリーズorクラッシュしただけじゃね?「ブリック」って言葉、みんな使いすぎだよ。
RIP Reply All… Twitterの末路を見る前に終わってよかったのかもね…
`printf(title)`じゃなくて`printf(“%s”, title)`を使ってたとか?そんなアホな…
数週間前にマツダCX-90をレンタカーで借りたんだけどさ、サムスンのAndroid Autoが全然繋がらなかったんだよ!Bluetoothでもケーブル接続でも、工場出荷状態に戻してもダメでさ。「車を止めてスマホの設定を完了させてください」みたいな画面でずっとフリーズしてた。完全に一致かどうかは分からんけど、このスレッド見て最初に思ったのは、ポッドキャストのタイトルにÇが入ってたことだったわ…。
マツダのインフォテインメントシステム持ってるけど、これ全然驚きじゃないわ。超気まぐれな機械だもん。
よかろうもん。まだ古いマツダ乗ってなかったから、あのポッドキャスト1000回以上聞いてるんだけどね…。
Half as interestingでもこのバグについて話してたよ
同じこと先週日産で経験したわ。99% Invisibleのエピソード聴こうとしたら、ステレオがクラッシュした。再起動してもBluetooth接続して再生再開するとまたクラッシュ…Spotify強制終了したら直った。その時「特定のポッドキャストがステレオ壊してるんじゃね?」って思ったわ。面白いよね。他のアプリで同じ99%のエピソード聴いたことあるんだけど。文字列の解析方法が違うのかな?テストしてみるか…。
素晴らしいポッドキャストだったよね…
リル・ボビー・テーブルズが作ったのかな?(SQLインジェクションネタ)
ブリックじゃなくて、消滅したんだよ!
入力サニタイズは忘れんなよ!
ヒュンダイの逆さまメインディスプレイよりはマシか… テクノロジー万歳!(棒読み)
マツダは入力をサニタイズしろ!
マツダのY2K問題だったなこれ…
変数前に$付けたらどうなるか試してみたら?開発終わったらロックされるはずなんだけど、ミスったんだろな…。
NULLナンバープレートの奴の話も聞いてみろよ!
問題は99個あるけど、動かないのは1つだけじゃない!
一流プログラマーなら、外部入力をフォーマット文字列として使うべきじゃないって知ってるはずだよ。最近のIDE/言語サーバーなら警告も出るし。AppleもWiFiコードでこれ失敗して、WiFi SSIDにパーセント記号があると問題起きたしね。
入力サニタイズしろよ!マジで!
Reply Allが恋しい…。転落っぷりが凄かった…
入力サニタイズ!大事!
タイトル全体を命令だと思っちゃったのかな?「99% Invisible?俺をワンダーウーマンの飛行機とでも思ってんの?」みたいな?w
クソprintf…
Reply Allが恋しい…

コメント