Skip to content

Commit 1006e15

Browse files
authored
Merge pull request #157 from danbaruka/fix/dependabot-security
fix: resolve dependency security vulnerabilities (Dependabot / npm audit)
2 parents b042d6a + fb7e8de commit 1006e15

7 files changed

Lines changed: 8186 additions & 7814 deletions

File tree

.github/dependabot.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
version: 2
2+
3+
updates:
4+
- package-ecosystem: "npm"
5+
directory: "/website"
6+
schedule:
7+
interval: "weekly"
8+
day: "monday"
9+
open-pull-requests-limit: 10
10+
labels:
11+
- "dependencies"
12+
groups:
13+
docusaurus:
14+
patterns:
15+
- "@docusaurus/*"
16+
update-types:
17+
- "minor"
18+
- "patch"
19+
babel:
20+
patterns:
21+
- "@babel/*"
22+
webpack:
23+
patterns:
24+
- "webpack"
25+
- "webpack-*"
26+
ignore:
27+
- dependency-name: "ajv"
28+
versions: [">=7.0.0"]
29+
update-types: ["version-update:semver-major"]
30+
31+
- package-ecosystem: "github-actions"
32+
directory: "/"
33+
schedule:
34+
interval: "weekly"
35+
day: "monday"
36+
open-pull-requests-limit: 5
37+
labels:
38+
- "dependencies"
39+
- "ci"

website/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,7 @@ $ GIT_USER=<Your GitHub username> yarn deploy
3939
```
4040

4141
If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.
42+
43+
### Security
44+
45+
Run dependency audits with `yarn audit` or `npm run audit`. See [SECURITY.md](./SECURITY.md) for how we verify and fix dependency security issues.

website/SECURITY.md

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
# Security verification
2+
3+
How to confirm that dependency security issues are addressed.
4+
5+
## 1. Run audits locally
6+
7+
From the **`website/`** directory (where `package-lock.json` and `yarn.lock` live):
8+
9+
```bash
10+
cd website
11+
npm audit
12+
# or
13+
yarn audit
14+
```
15+
16+
If you run `npm audit` from the repo root you’ll get `ENOLOCK` because there is no lockfile there.
17+
18+
- **npm audit**: Uses `package-lock.json`; respects `overrides`. Run after `npm install`.
19+
- **yarn audit**: Uses `yarn.lock`; respects `resolutions`. Can sometimes return 500 from the registry; use npm audit as fallback.
20+
21+
**Scripts in package.json:**
22+
23+
- `yarn audit` or `npm run audit` — full report
24+
- `npm run audit:ci` — exits with code 1 only if there are **high** or **critical** issues (useful for CI)
25+
26+
## 2. Check GitHub Dependabot
27+
28+
1. Open the repo on GitHub → **Security****Dependabot alerts**.
29+
2. Alerts that are fixed by your lockfile/overrides should show as **resolved** after the fix is merged (or after Dependabot re-runs).
30+
3. You can **reopen** a PR or **merge** the security update branch so the default branch has the fixed lockfiles.
31+
32+
## 3. What’s already fixed (overrides)
33+
34+
These are pinned in `package.json` via `resolutions` (Yarn) and `overrides` (npm):
35+
36+
| Package | Pinned version | Alerts addressed |
37+
|-------------|----------------|-------------------|
38+
| node-forge | 1.3.2 | ASN.1 recursion, OID truncation, etc. |
39+
| qs | 6.14.2 | arrayLimit bypass DoS |
40+
| minimatch | 3.1.2 | ReDoS (3.x line; 10.x has separate fix) |
41+
| lodash | 4.17.21 | Prototype pollution (_.unset / _.omit) |
42+
| ajv | ^8.17.0 | ReDoS with `$data` |
43+
| js-yaml | ^4.1.0 | Prototype pollution in merge |
44+
45+
After changing `package.json` or lockfiles, run **`yarn install`** and/or **`npm install`** in `website/` so the lockfiles reflect these versions.
46+
47+
## 4. Vulnerability checklist (fix one by one)
48+
49+
A full list of all current vulnerabilities with checkboxes, advisory links, and fix steps is in **[VULNERABILITIES.md](./VULNERABILITIES.md)**. Use it to track and fix issues one by one.
50+
51+
## 5. Remaining issues (npm audit)
52+
53+
Many remaining findings come from **transitive dependencies of Docusaurus 3.7.0**, for example:
54+
55+
- **@babel/helpers**, **@babel/runtime** — RegExp complexity (moderate)
56+
- **minimatch** (high) — ReDoS; advisory may require minimatch 10.x (major upgrade)
57+
- **lodash** — Prototype pollution; 4.17.21 is latest 4.x (advisory may want a different fix)
58+
- **mdast-util-to-hast** — Unsanitized class (moderate)
59+
- **webpack** — SSRF-related (fix available via `npm audit fix`)
60+
- **brace-expansion**, **diff**, **webpack-dev-server**, etc.
61+
62+
**Ways to reduce remaining issues:**
63+
64+
1. **Upgrade Docusaurus** to 3.9.x (or latest 3.x) so many transitive deps get updated at once.
65+
- Note: 3.9+ may require Node 20+.
66+
2. **Apply safe fixes:**
67+
`npm audit fix` (no `--force`) in `website/` to apply non-breaking fixes.
68+
3. **Overrides:** Add more `resolutions` / `overrides` only when you know the new version is compatible (e.g. from Docusaurus or advisory “fixed in” version).
69+
4. **Accept or dismiss:** For dev-only or low-impact advisories, you can document the decision and (if needed) use Dependabot “Dismiss” with a reason.
70+
71+
## 6. CI (optional)
72+
73+
To fail the build when new high/critical issues appear:
74+
75+
```yaml
76+
# Example (GitHub Actions)
77+
- run: cd website && npm ci && npm run audit:ci
78+
```
79+
80+
This uses `audit:ci`, which exits with code 1 only for high/critical severity.
81+
82+
## 7. Single lockfile (recommended)
83+
84+
The repo has both `yarn.lock` and `package-lock.json`. Using **one** package manager and **one** lockfile avoids drift and duplicate Dependabot alerts:
85+
86+
- Prefer **Yarn** (as in `packageManager`): delete `package-lock.json`, use only `yarn install` and `yarn.lock`.
87+
- Or prefer **npm**: remove `packageManager`, delete `yarn.lock`, use only `npm install` and `package-lock.json`.
88+
89+
Then configure Dependabot for that single ecosystem so alerts match what you actually install.

website/docs/working-group/sessions/q1-2026/10-wallet-integration/Session-2/recordings/readme.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
2-
title: "Session 10: Wallet Integration - Recordings"
2+
title: "Session 2 - Recordings"
33
sidebar_label: Recordings
4-
slug: /working-group/q1-2026/sessions/10-wallet-integration/recordings
4+
slug: /working-group/q1-2026/sessions/10-wallet-integration/Session-2/recordings
55
---
66

7-
# Session 10: Wallet Integration - Recordings
7+
# Session 2 - Recordings
88

99
Recordings for the Wallet Integration & Developer Experience session will be available here soon.
1010

0 commit comments

Comments
 (0)