Shogo's Blog

Aug 23, 2026 - 1 minute read - github

GitHub経由で脆弱性報告を受けた

TL;DR

go-webntp および go-nginx-oauth2-adapter に脆弱性が見つかりました。 脆弱性を修正した以下のバージョンをリリースしました。 現在使用している方は最新バージョンへのアップデートをオススメします。

脆弱性の概要

GitHub経由で脆弱性報告してみた では、「報告者」という立場でしたが、 今回は「報告を受けるメンテナー」という形で「プライベート脆弱性レポート機能」を利用することになりました。 報告者の @EQSTLab ありがとうございます。

go-webntp

HTTP/WebSocketで時刻同期するWebNTPを書いた で紹介した、WebSocketのサーバーです。

WebSocketのメッセージを全部メモリー上に展開して解析する処理が入っているのですが、そこにサイズ制限が漏れていました。 そのため、攻撃者はデカいデータを送りつけることでメモリーを圧迫し、最終的にはOOMでサービスを止められます。

v0.0.3 では読み込みデータのサイズ制限を設けることでこの脆弱性を修正しました。

go-nginx-oauth2-adapter

nginx-omniauth-adapterのGolangポート作った で紹介した、nginxにOIDCで認証を行う機能をつけるためのサーバーです。

go-nginx-oauth2-adapter では、セッションの署名に使用する秘密鍵を設定する必要があります。 しかし、省略しても警告を吐くだけで、その場合は固定の文字列をキーとして使っていました。 固定の文字列はソースコードに埋め込まれているので、攻撃者は簡単にセッションを偽造することが可能です。

v0.4.8 では、秘密鍵未設定時に警告ではなく起動に失敗するよう修正しました。 警告をちゃんと読んで秘密鍵をちゃんと設定していたユーザーには影響はないはずです。

まとめ

GitHub経由で脆弱性報告を受けたので、修正版をリリースしました。

go-webntp または go-nginx-oauth2-adapter を利用している方はアップデートをお願いします。

うさぎが記事をぴょんと読む
脆弱性の話を明るく綴る
サイズを守って鍵も確認
修正版を知らせて安心
GitHubの報告、月まで届け!

by CodeRabbit

参考