Hackeroneで、kinnay氏がNintendo 3DS/ Wii U/ Switchのオンライン対戦時に存在したIPアドレス送信時に実行しているテキストエンコードの変換UnicodeToUtf8に存在したスタックオーバーフローの脆弱性の内容が公表されていました。
脆弱性をkinnay氏がHackeroneに報告したのは2018年12月19日で、脆弱性が公表されたのは昨日2025年6月27日です。実に6年半の間非公表となっていた脆弱性です。報奨金の金額は未公表となっています。
オンライン対戦時にはそのゲームがIPアドレスをサーバーに送信します。サーバーは対戦相手側にそのIPアドレスを送信することてマッチングが成立しますが、受信したコンソールで文字のエンコードをUTF-8に変換します。
3DS、Wii U、Switchではこの変換を行う関数UnicodeToUtf8に脆弱性が存在し、スタックオーバーフローを引き起こしていました。
スタックオーバーフローとは、プログラムの実行中にスタックメモリの割り当て量を超えてしまう現象のことで、スタック領域にあるバッファが溢れることで関数ポインタやリターンアドレスを書き換えられてしまい任意のコード実行に繋がる可能性があります。
この脆弱性は既に対策済みで、転送前にサーバ側でIPアドレスを検証することで修正をした模様です。
kinnay氏はこの情報を2024年3月27日に公開要求しました。それが実現したのが昨日になります。exploitとして活用できる可能性はありましたが今となってはそれも不可能ですが、Hackeroneの報奨金システムによってこのように表に出てこないで対策される脆弱性が相当数存在する可能性があることが今回のUnicodeToUtf8の脆弱性で改めて浮き彫りになりました。