Skip to content

fix: @xmldom/xmldom を脆弱性修正版 0.9.12 へ更新(v0.78.1) - #171

Merged
okash1n merged 3 commits into
mainfrom
fix/xmldom-0.9.12
Sep 8, 2026
Merged

fix: @xmldom/xmldom を脆弱性修正版 0.9.12 へ更新(v0.78.1)#171
okash1n merged 3 commits into
mainfrom
fix/xmldom-0.9.12

Conversation

@okash1n

@okash1n okash1n commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

概要

web-content-extraction skill の推移依存 @xmldom/xmldomdefuddle@0.19.1mathml-to-latex@1.8.0 の optionalDependencies 経由)を 0.9.10 → 0.9.12 に更新し、Dependabot alert #26 を解消する。

  • advisory: GHSA-6gmq-8vp8-gcm6(Medium)— requireWellFormed シリアライズ時に不正な EntityReference.nodeName を経由した XML フラグメント注入。影響範囲 >=0.9.0 <=0.9.11、修正版 0.9.12
  • mathml-to-latex^0.9.10 範囲内のため lockfile のみ更新。package.json は変更なし(差分は version / resolved / integrity の 3 行)
  • 本 skill が到達するのは mathml-to-latex が MathML 解析に使う DOMParser だけで、advisory の対象である XMLSerializer は呼ばれない。攻撃者由来の任意ページを処理するパーサ層を最新に保つ目的の更新
  • @xmldom/xmldomupdate-deps.mjs の直接対象ではなく defuddle 更新時に推移的にしか追従しないため、キット同梱の lockfile を手動で更新した(v0.75.2 の undici / pdfjs-dist 対応と同じ経路)

MDM runtime bundle の期待ハッシュ同期

package-lock.json の SHA-256 は MDM の root-owned runtime bundle 契約として lib/deploy.shmdm/detect-mdm.shmdm/install-mdm.shdocs/mdm/README.mdtests/unit/test-mdm-detect.sh に固定されている。lockfile 更新でこの値が変わり、初回 push の CI では両 OS の unit-tests が activation の hash 不一致で中断した。#156(undici / pdfjs-dist 更新)と同じく、期待 lock ハッシュを e235f673…ddace3fb… へ一括更新した(package.json は不変のため package ハッシュ 711c13b0… は据え置き)。

MDM 配布環境は新しいバンドルパス(711c13b0…-ddace3fb…)で root-owned runtime bundle を再ビルド(auto)または再配布(fail)する必要がある。 旧バンドルは検証で拒否される。

確認

  • npm update @xmldom/xmldomnpm audit: 0 vulnerabilities
  • npm ci 後に npm test: 47 件 pass、0 fail
  • tests/unit/test-web-content-extraction.sh 単体: 77 PASS(残る 1 件「MDM managed package を runtime 更新し得る」は変更前から同じ挙動で、CI では pass する環境依存)
  • tests/unit/test-deploy-refactor.sh 単体: 28/28 PASS
  • shellcheck -S warning/bin/bash -n(Bash 3.2): 指摘 0
  • MDM スイート(test-mdm-detect / test-mdm-wce-runtime ほか)は CI の unit-tests ジョブで検証
  • CHANGELOG に 0.78.1 エントリを追加(patch)

https://claude.ai/code/session_01C9mrbbXQgV9fJ8Zy5UoEYc

web-content-extraction skill の推移依存 @xmldom/xmldom(defuddle →
mathml-to-latex 経由、optional)を 0.9.10 → 0.9.12 に更新し、Dependabot
alert #26GHSA-6gmq-8vp8-gcm6、Medium: requireWellFormed シリアライズ時の
XML フラグメント注入、影響範囲 >=0.9.0 <=0.9.11)を解消する。

- mathml-to-latex の ^0.9.10 範囲内なので lockfile のみ更新、package.json
  は変更なし
- 本 skill が到達するのは mathml-to-latex の DOMParser だけで、advisory の
  対象である XMLSerializer は呼ばれない。攻撃者由来のページを処理する
  パーサ層として最新に保つ目的の更新
- npm audit 0 件、npm ci 後の skill テスト 47 件 pass を確認

Claude-Session: https://claude.ai/code/session_01C9mrbbXQgV9fJ8Zy5UoEYc
Copilot AI lite review requested due to automatic review settings September 8, 2026 04:40
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 8, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-08T05:07:19.922479Z d2725d1 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

lockfile の解決バージョン更新と changelog 追記のみで、差分が目的(脆弱性修正版への更新)と整合しているため。

Pull request overview

web-content-extraction skill の推移依存である @xmldom/xmldom を 0.9.12 に更新し、GHSA-6gmq-8vp8-gcm6(Dependabot alert #26)に対応するための PR です。リポジトリ同梱の lockfile を更新することで、skill の依存ツリーを脆弱性修正版へ寄せています。

Changes:

  • skills/web-content-extraction の lockfile で @xmldom/xmldom を 0.9.10 → 0.9.12 に更新
  • CHANGELOG.md に v0.78.1(Security)として上記対応を追記
File summaries
File Description
skills/web-content-extraction/package-lock.json @xmldom/xmldom の解決バージョンを 0.9.12 へ更新し、脆弱性修正版を取り込む
CHANGELOG.md v0.78.1 として Dependabot alert #26 対応(Security)を記録
Review details

Files not reviewed (1)

  • skills/web-content-extraction/package-lock.json: Generated file
  • Files reviewed: 1/2 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5d89666ab6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

"version": "0.9.10",
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.10.tgz",
"integrity": "sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==",
"version": "0.9.12",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Update the pinned MDM runtime hashes with the lockfile

For every MDM-managed install with INSTALL_SKILLS=true, this lockfile now hashes to ddace3fb92cc857f7fbcc73159fc68fb0438e1c03c1fe7dfcfd8ea654b994832, but mdm/install-mdm.sh:14336-14417 and lib/deploy.sh:1506,1753-1758 still require the previous e235f... digest. Consequently the privileged installer rejects the authenticated checkout before building the runtime, and setup also rejects any bundle containing the new dependency graph; update all duplicated MDM hash/path/receipt pins and their fixtures alongside this lockfile change.

Useful? React with 👍 / 👎.

package-lock.json の SHA-256 は MDM の root-owned runtime bundle 契約として
lib/deploy.sh・mdm/detect-mdm.sh・mdm/install-mdm.sh・docs/mdm/README.md・
tests/unit/test-mdm-detect.sh に固定されており、@xmldom/xmldom 更新で
lockfile が変わったため両 OS の unit-tests が activation の hash 不一致で
中断していた(#156 の undici / pdfjs-dist 更新と同じ経路)。

- 期待 lock ハッシュを e235f673… → ddace3fb… へ一括更新(package.json は
  不変のため package ハッシュ 711c13b0… は据え置き)
- CHANGELOG 0.78.1 に MDM 配布環境での runtime bundle 再ビルド・再配布の
  必要性を明記
- ローカル確認: test-web-content-extraction.sh 77 PASS(残る 1 件の
  「MDM managed package を runtime 更新し得る」は変更前から同じ挙動で
  CI では pass する環境依存)、test-deploy-refactor.sh 28/28、shellcheck、
  /bin/bash -n

Claude-Session: https://claude.ai/code/session_01C9mrbbXQgV9fJ8Zy5UoEYc
- web-content-update フックが一度でも走ったインストールでは lockfile の
  .packages が runtime 所有として保持され、setup.sh --update では
  @xmldom/xmldom が 0.9.10 のまま残る(lib/update.sh の package pair
  merge)。手動更新手順(npm update @xmldom/xmldom)を明記
- 0.9.12 の upstream release notes に、DOMParser.parseFromString から
  到達できる parser 側 DoS 修正(GHSA-965w-775f-mr7gGHSA-8344-3jmq-59r6
  ほか)が含まれることを追記。本 skill の実行経路に直接関係するのは
  Dependabot が報告した serializer 側ではなくこちら

Claude-Session: https://claude.ai/code/session_01C9mrbbXQgV9fJ8Zy5UoEYc
@okash1n
okash1n merged commit f8f8ef5 into main Sep 8, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants