エリプティックライブラリに対しWycheproofスイートでテストした結果、暗号学的欠陥を発見しました。

2026/01/01 23:52

エリプティックライブラリに対しWycheproofスイートでテストした結果、暗号学的欠陥を発見しました。

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

JavaScript elliptic ライブラリは、約3 000のプロジェクトで使用されており、週に1,000万回以上ダウンロードされています。このライブラリには、署名の偽造や有効な署名を拒否する二つの重大なセキュリティ脆弱性が存在します。

  1. EdDSA 署名の可変性(CVE‑2024‑48949) は、スカラー
    s
    に対する境界外チェックが欠落しているために発生し、攻撃者が署名を偽造できるようになっています。この脆弱性は 2024 年 7 月 16 日に公開されましたが、10 月に閉じた 90 日間の開示期間後もパッチは適用されていません。
  2. ECDSA 検証エラー(CVE‑2024‑48948) は、
    new BN(msg,16)
    が先頭ゼロを取り除きハッシュを曲線順序に切り捨てることで発生し、高い先頭ゼロを含む有効な署名が拒否されます。このバグは 2024 年 7 月 17 日の開示後に内部的に修正されましたが、公開 CVE は 10 月 15 日までにリリースされませんでした。
    合計で五つの脆弱性が特定されました:三つはパーシング問題の小規模 CVE が公共プルリクエスト経由で提出され、二つは GitHub アドバイザリを通じて処理された重大な CVE です。すべてに MITRE によって 2024 年 10 月 10 日に CVE 番号が付与されました。
    Wycheproof テストベクトルは、これらのバグ発見に重要な役割を果たしました。著者は elliptic 用のハーネスを構築し、Wycheproof の使用方法に関するガイドを公開しました。Daniel Bleichenbacher は 2024 年 10 月 13 日頃に関連する問題(#321)を独自に特定し、elliptic 実装の継続的な監査が必要であることを示しています。
    開発者は依存関係を迅速に更新し、CI/CD パイプラインに継続的な Wycheproof テストを統合して、署名偽造、監査失敗、および JavaScript エコシステム全体での評判への損害を防ぐよう促されます。

本文

Trail of Bits は、毎週 1,000 万回以上ダウンロードされる人気の JavaScript ライブラリ elliptic(楕円曲線暗号用)に関する 2 件の脆弱性を公開しました。
このライブラリは約 3,000 のプロジェクトで利用されています。

発見されたバグは、モジュラー減算が欠如している点と長さチェックが抜けている点に起因します。これらにより、攻撃者は署名を偽造したり、有効な署名を却下させることが可能になります。
1 つの脆弱性(CVE‑2024‑48949)は、10 月に終了した 90 日間の開示期間後も未修正のままとなっています。


バグの発見経緯

  1. Wycheproof – 暗号アルゴリズム用のテストベクトル集を使用して elliptic を過負荷テスト。
  2. Trail of Bits の Testing Handbook に記載されたカスタムハーネスが Wycheproof ベクトルをライブラリに対して実行。
  3. 失敗したテストケースを検証し、偽陽性か本当の発見か分類。その後、各脆弱性の概念実証コードを書き上げる。
  4. 発見内容は GitHub のアドバイザリ経由で elliptic のメンテナに報告・調整。

発見結果

CVE問題点影響
CVE‑2024‑48949EdDSA 署名の改変性 – スカラー
s
の境界チェックが欠如。
攻撃者は既知の
(msg, sig)
に対して新しい有効署名を偽造できる。
CVE‑2024‑48948先頭ゼロハッシュでの ECDSA 検証エラー – ハッシュ値の切り捨てが誤っている。メッセージハッシュに十分な先頭ゼロ(確率 2⁻³²)が含まれると、有効署名が拒否される。

CVE‑2024‑48949: EdDSA 署名改変性

NIST FIPS 186‑5 §7.8.2 は

0 ≤ s < n
を検証することを要求しています。
elliptic ではこのチェックが省略されているため、攻撃者は次のように新しいスカラー
s'
を作成できる:

s' mod n == s

以下の guard を追加すれば偽造を防げます。

if (sig.S().gte(sig.eddsa.curve.n)) {
  return false;
}

CVE‑2024‑48948: ECDSA 検証エラー

ECDSA の検証ではハッシュ

H
を曲線のオーダー
n
に合わせて切り捨てる必要があります:

log2(n) ≥ hashlen なら  E = H
そうでなければ  E は H の左端 log2(n) ビットを取ったもの

ライブラリの

_truncateToN
関数は、hex 文字列を BN オブジェクトに変換した後でバイト長を測定するため、先頭ゼロが失われます。
結果として
delta
が小さく計算され(32 ビットではなく 64 ビット)、ハッシュの切り捨てが正しく行われず、有効署名が失敗します。

修正例:

EC.prototype.verify = function verify(msg, signature, key, enc, msgSize) {
  msg = this._truncateToN(new BN(msg, 16), undefined, msgSize);
};

EC.prototype._truncateToN = function _truncateToN(msg, truncOnly, msgSize) {
  var size   = (typeof msgSize === 'undefined') ? (msg.byteLength() * 8) : msgSize;
  var delta  = size - this.n.bitLength();
  ...
};

継続的テストの重要性

これらの脆弱性は、暗号ライブラリが常に最新のテストベクトルで検証される必要があることを示しています。
Wycheproof などのスイートを CI/CD パイプラインに組み込むことで、パーサー・算術演算・プロトコル準拠のいずれかで回帰が発生した際にリリース前に検出できます。


開示タイムライン

日付事象
2024‑07‑09Wycheproof ベクトル失敗を検知。
2024‑07‑10ECDSA と EdDSA の問題を確認し、PoC と修正を書作成。
2024‑07‑16CVE‑2024‑48949 を非公開で報告;PR 合流、新リリースを非公開で実施。
2024‑10‑10MITRE へ CVE ID 要求。
2024‑10‑1590 日間の開示期間終了 → 公開。
2024‑07‑17CVE‑2024‑48948 を非公開で報告;PR 提出。
2024‑07‑23 – 2024‑08‑14GitHub アドバイザリに共同作業者を追加しようと試みるが応答なし。
2024‑10‑13Wycheproof 開発者 Daniel Bleichenbacher が関連問題 (#321) を独自に発見。

参考文献

  • Trail of Bits Wycheproof ガイド
  • NIST FIPS 186‑5 規格
  • elliptic ライブラリのリポジトリ & GitHub アドバイザリ

同じ日のほかのニュース

一覧に戻る →

2026/01/08 5:16

Tailscale の状態ファイル暗号化は、もはやデフォルトでは有効になっていません。

2026/01/07 23:29

砂糖産業は研究者に影響力を行使し、脂質を心血管疾患(CVD)の原因として非難しました(2016年)

## Japanese Translation: --- ### 要約 2016年9月12日に *JAMA Internal Medicine* に掲載された研究は、糖業界と栄養科学者との長期にわたるパートナーシップを明らかにする340件の業界文書(1,582ページ)を調査しました。これらの文書は、1960年代半ばから始まった公衆および科学的関心をショ糖から食事脂肪へと移すための協力努力を示しています。 主な歴史的出来事は次の通りです: * **1954年** – 糖業界の貿易組織が低脂肪食の採用により1人当たりのショ糖消費量が3分の1以上増加すると予測しました。組織には30か国の加盟国がありました。 * **1965年** – ショ糖と心臓病リスクに関するメディア報道が急増し、業界はProject 226を委託しました。このプロジェクトはハーバード大学で文献レビューを行い、1967年に *The New England Journal of Medicine*(NEJM)に掲載されました。 Project 226 は糖業界からの資金(2016年換算で約50,000ドル)によって支援され、具体的な目的が設定され、記事が提供され、レビュー担当者(Roger Adams と D. Mark Hegsted)からドラフトが受領されましたが、NEJMの記事には資金源は明示されていませんでした。レビューの結論は、食事中のコレステロールを減らし飽和脂肪酸を多価不飽和脂肪酸に置き換えることで冠動脈心疾患を予防できるとした一方で、ショ糖関連研究を強く批判し食事脂肪の研究限界を無視しました。 UCSF の研究者は、科学的レビューが利益相反から自由であるべきであり、微妙な操作を避けるために完全な財務開示が必要だと強調しています。彼らは追加糖分と高血圧・心血管疾患との関連を示す証拠が増えているものの、現在の健康政策ではショ糖を心臓病リスク因子として一貫して引用していない点に注目しています。 **本研究への資金提供元は次のとおりです:** * UCSF Philip R. Lee Institute for Health Policy Studies * Hellmann Family Fund * UCSF School of Dentistry * National Institute of Dental and Craniofacial Research * National Cancer Institute 調査結果は、糖業界が歴史的に公衆の意見と科学的議論をどのように形成してきたかを示し、利益相反規則を強化することで規制当局・医療提供者・食品産業がシュガー表示、マーケティング慣行、および食事指針を再検討し、結果として製品中のショ糖含有量を低減させ消費者習慣に変化をもたらす可能性があることを示唆しています。

2026/01/07 13:40

「LMArena は AI にとっての悪性腫瘍です。」

## 日本語訳: (欠落している詳細を補完しつつ明確さを保ったもの) --- ## 要約 LMArena のリーダーボードは、事実の正確性よりも派手なフォーマット―太字ヘッダー、絵文字、長い回答―を報酬とするため、幻覚(hallucinations)を真実より優先させるゲーミフィケーション化されたベンチマークに変わってしまっています。500件の投票を分析した結果、52 % が誤りであり 39 % がユーザーの選択と強く相違していました。高得点を獲得した回答には、架空の「オズの魔法使い」の引用(例:作られたライン)や不可能な主張(例:9インチの丸パンが 9×13 インチの長方形パンと同じだと断言する)が含まれていました。Meta‑tuned Maverick モデルは、単純な「今何時?」という質問で太字テキスト、絵文字、回避的言語を駆使して勝利しました。 このシステムは未払いのボランティア労働に依存し、品質管理がほとんどないため、ユーザーは誤情報や捏造された情報を受け取ることが多く、特に医療文脈では非常に危険です。研究者・企業・AIコミュニティは LMArena を非公式な尺度として利用していますが、正確性重視の指標がない限り、モデルは引き続きエンゲージメントを優先し、信頼性よりも注目度を追求するため、広範囲にわたる誤情報と AI による意思決定支援への信頼低下を招くリスクがあります。

エリプティックライブラリに対しWycheproofスイートでテストした結果、暗号学的欠陥を発見しました。 | そっか~ニュース