fix: @xmldom/xmldom を脆弱性修正版 0.9.12 へ更新(v0.78.1) - #171
Conversation
web-content-extraction skill の推移依存 @xmldom/xmldom(defuddle → mathml-to-latex 経由、optional)を 0.9.10 → 0.9.12 に更新し、Dependabot alert #26(GHSA-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
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
🟢 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.
There was a problem hiding this comment.
💡 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", |
There was a problem hiding this comment.
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-mr7g、GHSA-8344-3jmq-59r6 ほか)が含まれることを追記。本 skill の実行経路に直接関係するのは Dependabot が報告した serializer 側ではなくこちら Claude-Session: https://claude.ai/code/session_01C9mrbbXQgV9fJ8Zy5UoEYc
概要
web-content-extractionskill の推移依存@xmldom/xmldom(defuddle@0.19.1→mathml-to-latex@1.8.0の optionalDependencies 経由)を 0.9.10 → 0.9.12 に更新し、Dependabot alert #26 を解消する。requireWellFormedシリアライズ時に不正なEntityReference.nodeNameを経由した XML フラグメント注入。影響範囲>=0.9.0 <=0.9.11、修正版 0.9.12mathml-to-latexの^0.9.10範囲内のため lockfile のみ更新。package.jsonは変更なし(差分は version / resolved / integrity の 3 行)mathml-to-latexが MathML 解析に使うDOMParserだけで、advisory の対象であるXMLSerializerは呼ばれない。攻撃者由来の任意ページを処理するパーサ層を最新に保つ目的の更新@xmldom/xmldomはupdate-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.sh・mdm/detect-mdm.sh・mdm/install-mdm.sh・docs/mdm/README.md・tests/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/xmldom→npm audit: 0 vulnerabilitiesnpm ci後にnpm test: 47 件 pass、0 failtests/unit/test-web-content-extraction.sh単体: 77 PASS(残る 1 件「MDM managed package を runtime 更新し得る」は変更前から同じ挙動で、CI では pass する環境依存)tests/unit/test-deploy-refactor.sh単体: 28/28 PASSshellcheck -S warningと/bin/bash -n(Bash 3.2): 指摘 0test-mdm-detect/test-mdm-wce-runtimeほか)は CI の unit-tests ジョブで検証https://claude.ai/code/session_01C9mrbbXQgV9fJ8Zy5UoEYc