You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+43Lines changed: 43 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,48 @@
1
1
# Changelog
2
2
3
+
## Changes 07/25/2026 (v3.23.0)
4
+
5
+
`release(v3.23.0): authentication and authorization hardening`
6
+
7
+
**Commit message**
8
+
9
+
```text
10
+
release(v3.23.0): authentication and authorization hardening
11
+
12
+
- security(auth): harden TOTP verification and account settings
13
+
- security(oidc): bind accounts by immutable provider identity
14
+
- security(files): enforce upload, callback, and path boundaries
15
+
```
16
+
17
+
**Fixed**
18
+
19
+
- TOTP verification now enforces persistent account-wide and source-wide attempt budgets across all pending-login verification paths, and the alternate auth handler now resolves the shared TOTP verifier correctly, so changing sessions or client addresses cannot reset the second-factor limit.
20
+
- Successfully accepted TOTP time steps are now claimed atomically per account and authenticator secret, preventing the same still-valid code from completing authentication more than once.
21
+
- Successful TOTP verification clears the account budget without counting ordinary successful logins against shared-network failure limits.
22
+
- TOTP enrollment now remains pending until a valid code confirms the new authenticator, and enrollment, disablement, and recovery-code rotation require a recent full authentication.
23
+
- OIDC logins now bind the validated issuer-and-subject identity to a local account, ignore unverified email for naming, and cannot attach a mutable username claim to an existing local account.
24
+
- Upload and rename validation now rejects trailing-dot filenames across regular, resumable, shared, and WebDAV write paths so filesystem or web-server normalization cannot bypass blocked executable names.
25
+
- Logical folder paths now reject raw or encoded `.` and `..` segments before ACL evaluation or storage access; local writes use boundary-aware containment before directory creation, and WebDAV operations cannot escape the configured source root.
26
+
- ZIP, 7z, and RAR extraction now occurs in a private temporary workspace on the same local storage volume, and validated regular files are placed atomically only through real in-root destination directories; pre-existing destination symlinks can no longer redirect extraction or cleanup outside the storage root.
27
+
- ONLYOFFICE save callbacks now require a valid HS256 JWT from the configured Document Server; omitting the callback JWT no longer falls back to trusting the unsigned request body.
28
+
- Cross-parent folder renames now enforce destination move rights and matching ownership boundaries, preventing a folder owner from moving their tree into another user's folder or the admin-controlled root.
29
+
30
+
**Upgrade notes**
31
+
32
+
-**Breaking security change for existing OIDC deployments:** OIDC identities created before v3.23.0 do not have an issuer/subject binding and cannot continue matching an existing local account automatically.
33
+
-**ONLYOFFICE callback security change:** Before upgrading, ensure the Document Server has outgoing/outbox JWTs enabled and uses the same secret configured in FileRise. Correctly configured deployments require no data migration.
34
+
- Older or misconfigured Document Servers that omit callback JWTs will be unable to save until their outgoing JWT configuration is corrected. `ONLYOFFICE_ALLOW_UNSIGNED_CALLBACKS=1` is available only as a temporary, explicitly unsafe recovery measure; remove it immediately after confirming a signed document save.
35
+
- After five failed TOTP submissions, that account waits up to 15 minutes before another verification attempt.
36
+
- Sessions whose full authentication is more than five minutes old must sign in again before changing TOTP security settings; remember-me restoration alone does not satisfy this check.
37
+
- Existing non-OIDC users, TOTP secrets, sessions, Docker volumes, and deployment configuration require no migration.
38
+
- Before upgrading an OIDC deployment, verify a working local administrator login and back up the `users` directory.
39
+
- On the first OIDC login for an existing account, FileRise presents a one-time guided link prompt for that account's local password and, when configured, TOTP. This confirmation works even when ordinary form login is disabled.
40
+
- New OIDC identities whose proposed username does not collide with an existing local account continue to auto-provision normally when OIDC auto-provisioning is enabled; they are bound to the validated issuer and subject immediately and do not receive the guided link prompt.
41
+
- OIDC-only users without a known local password require an administrator-assisted password reset or account migration. Complete this preparation before upgrading any deployment whose only administrator uses OIDC.
42
+
- See `docs/wiki/oidc sso.md` under **Upgrading existing OIDC accounts to v3.23.0** for the complete migration procedure.
43
+
44
+
---
45
+
3
46
## Changes 07/13/2026 (v3.22.0)
4
47
5
48
`release(v3.22.0): generate unique keys for pristine manual installs`
For a package installation or an older Document Server, ensure all three values are configured in `/etc/onlyoffice/documentserver/local.json` and restart the ONLYOFFICE services:
Do not edit `default.json`; ONLYOFFICE can replace that file during upgrades.
55
+
56
+
---
57
+
58
+
## Upgrading to FileRise v3.23.0
59
+
60
+
FileRise v3.23.0 rejects missing and invalid callback JWTs. Previous FileRise versions accepted an unsigned callback body when the separate FileRise callback URL token was valid.
61
+
62
+
Before upgrading:
63
+
64
+
1. Confirm the JWT secret configured in FileRise matches the Document Server's `JWT_SECRET` or outbox secret.
65
+
2. Confirm outgoing/outbox request tokens are enabled.
66
+
3. Restart the Document Server after changing its JWT configuration.
67
+
4. After upgrading FileRise, use **Run tests**, then edit and save a test document.
68
+
69
+
Existing documents, accounts, and FileRise storage require no migration. A correctly configured Document Server continues working normally.
70
+
71
+
If saves fail because an older deployment is not sending callback JWTs, correct the Document Server configuration first. As a temporary recovery measure only, set this environment variable on the FileRise container or PHP service:
72
+
73
+
```text
74
+
ONLYOFFICE_ALLOW_UNSIGNED_CALLBACKS=1
75
+
```
76
+
77
+
For a manual FileRise installation, the equivalent temporary override is:
This override restores the old unsigned-body behavior and weakens callback authentication. Keep it enabled only long enough to correct the Document Server, restart it, and confirm a successful signed save. Then remove the override and restart FileRise. The Admin Panel displays a security warning while the override is active.
20
84
21
85
---
22
86
@@ -63,3 +127,5 @@ You can lock ONLYOFFICE settings in `config/config.php` by defining:
63
127
- `ONLYOFFICE_PUBLIC_ORIGIN`
64
128
65
129
When any of these are defined, the admin UI reflects the locked values.
130
+
131
+
`ONLYOFFICE_ALLOW_UNSIGNED_CALLBACKS` is an emergency compatibility override, not a normal integration setting. It defaults to `false` and should not remain enabled.
? 'Security warning: unsigned ONLYOFFICE callbacks are temporarily allowed. Configure outgoing JWTs on the Document Server and remove ONLYOFFICE_ALLOW_UNSIGNED_CALLBACKS.'
509
+
: 'Callback JWT enforcement is enabled. Unsigned or invalid save callbacks are rejected.';
0 commit comments