Skip to content

fix: close commonmark and bundled JS advisories, repair integration CI - #233

Draft
oleksandr-nc wants to merge 3 commits into
mainfrom
fix/deps-and-ci
Draft

fix: close commonmark and bundled JS advisories, repair integration CI#233
oleksandr-nc wants to merge 3 commits into
mainfrom
fix/deps-and-ci

Conversation

@oleksandr-nc

Copy link
Copy Markdown
Contributor

Updates league/commonmark to 2.10.0, closing four high-severity denial-of-service
advisories and an AttributesExtension unsafe-link filter bypass on the converter that
renders issue and pull request bodies, and pins dompurify, js-yaml and nanoid to their
patched versions through overrides.

Fixes the integration matrix, which paired PHP 8.2 with Nextcloud master even though
master requires 8.3, so occ maintenance:install aborted before any test ran.

Fixes the OAuth test failing on every pull request when GitHub serves its two-factor
checkup page as a bare client-rendered form: that variant is now detected and skipped
rather than reported as a generic missing-form failure.

league/commonmark 2.8.3 -> 2.10.0 closes four high-severity
denial-of-service advisories and an AttributesExtension unsafe-link
filter bypass. The converter is reached from
GithubIssuePrReferenceProvider, which renders issue and pull request
bodies, so the input is attacker-authorable.

Pin the three vulnerable transitive npm packages through `overrides`
instead of running `npm audit fix`, which resolved 58 package changes
and nine major version jumps -- @nextcloud/files 4, @nextcloud/paths 3,
vue-router 5, focus-trap 8, @vueuse/core 14 among them -- none of which
belong in a patch release. The override route moves exactly three
packages and adds none: dompurify 3.4.13, js-yaml 4.3.1, nanoid 3.3.18.

This clears both remaining high-severity npm advisories. What is left is
dev-only: the fast-xml-parser 4.x copy arrives via @nextcloud/eslint-config
and needs the deferred eslint 10 flat-config migration, and elliptic has
no upstream patch.

Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
The checkup page was already handled, but only when GitHub served a
postable form at /settings/two_factor_checkup/delay. It is now sometimes
rendered client-side as a bare /settings/two_factor_checkup form with no
named inputs, which the delay-form matcher missed, so the run fell
through to a generic "no form found" failure on every pull request.

Detect that variant separately and skip with a message naming the fix,
rather than failing. The account state is outside the app's control and
a hard failure there hides real regressions in the OAuth flow.

Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
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.

1 participant