Skip to content

Commit 3c3d19d

Browse files
author
Etherpad Release Bot
committed
Merge branch 'develop'
# Conflicts: # admin/package.json # bin/package.json # package.json # src/package.json
2 parents f534756 + d52f4f2 commit 3c3d19d

18 files changed

Lines changed: 811 additions & 478 deletions

‎CHANGELOG.md‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
# 3.3.13
2+
3+
3.3.13 is a security release. It stops `.etherpad` imports from setting a pad's ownership, privacy or deletion token (GHSA-qq7c-m9pc-7q7v).
4+
5+
### Security
6+
7+
- **Import — `.etherpad` files can no longer change who owns a pad, make it public or plant a deletion token (GHSA-qq7c-m9pc-7q7v).** Importing a `.etherpad` file into a pad with fewer than 10 revisions wrote every `pad:<id>:*` record in the file and every field of the pad record. Anyone who could edit a new pad could replace the creator's deletion token with their own, make a private group pad public, or name themselves as the pad's creator. Imports now only take the pad text, revisions and chat. The pad keeps its public status, pad-wide settings come from the file only when the creator imports it, and a file that names a different creator can only be imported by the pad's creator. Reported by @barnessomer.
8+
19
# 3.3.12
210

311
3.3.12 is a security release. It closes an open redirect in the timeslider's "Return to pad" button (GHSA-35rj-7vrx-29wq) and stops revision-bound `.etherpad` exports from leaking later chat.

‎admin/package.json‎

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "admin",
33
"private": true,
4-
"version": "3.3.12",
4+
"version": "3.3.13",
55
"type": "module",
66
"scripts": {
77
"dev": "pnpm gen:api && vite",
@@ -15,8 +15,8 @@
1515
},
1616
"dependencies": {
1717
"@radix-ui/react-switch": "^1.4.1",
18-
"@tanstack/react-query": "^5.104.5",
19-
"@tanstack/react-query-devtools": "^5.104.5",
18+
"@tanstack/react-query": "^5.105.1",
19+
"@tanstack/react-query-devtools": "^5.105.1",
2020
"jsonc-parser": "^3.3.1",
2121
"openapi-fetch": "^0.17.0",
2222
"openapi-react-query": "^0.5.4"
@@ -27,21 +27,21 @@
2727
"@radix-ui/react-visually-hidden": "^1.2.13",
2828
"@types/react": "^19.3.0",
2929
"@types/react-dom": "^19.3.0",
30-
"@typescript-eslint/eslint-plugin": "^8.72.0",
31-
"@typescript-eslint/parser": "^8.72.0",
30+
"@typescript-eslint/eslint-plugin": "^8.72.1",
31+
"@typescript-eslint/parser": "^8.72.1",
3232
"@vitejs/plugin-react": "^6.1.2",
3333
"babel-plugin-react-compiler": "19.1.0-rc.3",
34-
"eslint": "^10.13.0",
34+
"eslint": "^10.14.0",
3535
"eslint-plugin-react-hooks": "^7.1.1",
3636
"eslint-plugin-react-refresh": "^0.5.7",
37-
"i18next": "^26.5.11",
38-
"i18next-browser-languagedetector": "^8.2.3",
39-
"lucide-react": "^1.61.0",
37+
"i18next": "^26.5.12",
38+
"i18next-browser-languagedetector": "^8.2.4",
39+
"lucide-react": "^1.65.0",
4040
"react": "^19.3.1",
4141
"react-dom": "^19.3.1",
4242
"react-hook-form": "^7.91.0",
43-
"react-i18next": "^17.1.9",
44-
"react-router-dom": "^7.18.4",
43+
"react-i18next": "^17.1.10",
44+
"react-router-dom": "^7.18.5",
4545
"socket.io-client": "^4.8.4",
4646
"tsx": "^4.23.15",
4747
"typescript": "^7.0.2",

‎bin/package.json‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "bin",
3-
"version": "3.3.12",
3+
"version": "3.3.13",
44
"description": "",
55
"main": "checkAllPads.js",
66
"directories": {
@@ -14,7 +14,7 @@
1414
"ueberdb2": "6.1.18"
1515
},
1616
"devDependencies": {
17-
"@types/node": "^26.6.5",
17+
"@types/node": "^26.6.6",
1818
"@types/semver": "^7.8.0",
1919
"typescript": "^7.0.2"
2020
},

‎bin/push-after-release.sh‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#!/bin/bash
2+
set -euo pipefail
23

34
# Specify the path to your package.json file
45
PACKAGE_JSON_PATH="./src/package.json"
@@ -11,6 +12,7 @@ fi
1112

1213
# Read the version from package.json into a variable
1314
VERSION=$(jq -r '.version' "$PACKAGE_JSON_PATH")
14-
git push origin master develop $VERSION
15-
git push --tags
15+
# --atomic: if any ref is rejected (e.g. by branch protection), push none of
16+
# them and fail the job instead of shipping a tag with develop left behind.
17+
git push --atomic origin master develop "$VERSION" "v$VERSION"
1618
(cd ../ether.github.com && git push)

‎bin/release.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,10 +194,10 @@ try {
194194
console.log(`Creating ${newVersion} tag...`);
195195
run(`git tag -a '${newVersion}' -m '${newVersion}'`);
196196
run(`git tag -a 'v${newVersion}' -m 'v${newVersion}'`);
197+
// develop requires linear history, so it is not merged back from master: it
198+
// keeps the "bump version" commit made above and is pushed as a fast-forward.
197199
console.log('Switching back to develop...');
198200
run('git checkout develop');
199-
console.log('Merging master into develop...');
200-
run('git merge --no-ff --no-edit master');
201201
} catch (err:any) {
202202
console.error(err.toString());
203203
console.warn('Resetting repository...');

‎doc/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"devDependencies": {
3-
"oxc-minify": "^0.155.0",
3+
"oxc-minify": "^0.156.0",
44
"vitepress": "^2.0.0-alpha.21"
55
},
66
"scripts": {

‎package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,6 @@
5252
"url": "https://github.com/ether/etherpad.git"
5353
},
5454
"engineStrict": true,
55-
"version": "3.3.12",
55+
"version": "3.3.13",
5656
"license": "Apache-2.0"
5757
}

0 commit comments

Comments
 (0)