Asayomu Tech
注目★★★★★GitHub Advisory

ip-address ライブラリの 8 進数解析バグ、SSRF フィルタ突破の危険性

30秒で把握

  • 1ip-address Address4 が先頭ゼロオクテットを 10 進で解析・URL パーサとの 8 進/10 進解析不一致で内部 IP を外部誤判定
  • 2isPrivate() など全メソッドで継承・SSRF フィルタが内部ネットワークへのリクエストを許可し信頼境界が破綻
  • 3パッケージ使用チームはアップデート版での isPrivate() 動作確認・先頭ゼロ IP を含むテストケース作成推奨

要約

npm パッケージ ip-address の Address4 が、先頭ゼロの付いたオクテット (例: 012) を 10 進数で解析するのに対し、ブラウザの URL パーサや getaddrinfo は 8 進数として解析する。この不一致により、内部ネットワーク (10.0.0.1 など) の判定を isPrivate() で外部と誤判定され、SSRF フィルタが突破される。Address4 を使う全てのメソッド (isPrivate / isLoopback / isLinkLocal など) が継承する欠陥で、信頼境界検証に基づく制御が破綻する。

あなたへの影響

内部向けファイアウォール/SSRF フィルタに ip-address ライブラリを使っている場合。

推奨:アップデート前に先頭ゼロ付き IP アドレスの入力テストと修正版の適用確認が必要。

詳細を読む → 元記事へ※ 本文は元記事をご確認ください (asayomu は要約のみ提供)

関連する記事

※ 外部記事の権利は原著作者に帰属します。著作権削除要請は copyright@asayomu.jp までご連絡ください(受領確認 24h・実処理 72h 以内)。