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
fix(security): SMTP-/WebDAV-Zugangsdaten in GET /admin/org-settings gefiltert
GHSA-63xg-pg3x-g36f (CVSS 6.5, gemeldet von @dav-rest): jede Rolle ab 'reader'
konnte smtpSettings.pass und webdavSettings.appPassword im Klartext auslesen,
da der Lese-Pfad nur mit authorize('reader') statt authorize('admin') gesichert
war. Fix: Zugangsdaten werden für Rollen unterhalb 'admin' herausgefiltert,
der restliche Endpunkt bleibt erreichbar (navOrder/Splash-Settings werden von
allen Rollen beim Login benötigt).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H5yQKPm5aF2bFWaZz2TEDr
Copy file name to clipboardExpand all lines: CHANGELOG.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,11 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
10
10
11
11
## [Unreleased]
12
12
13
+
## [1.40.3] — 2026-09-02
14
+
15
+
### Security
16
+
- **Broken access control in `GET /admin/org-settings` leaked SMTP-/WebDAV-Zugangsdaten** ([GHSA-63xg-pg3x-g36f](https://github.com/coolstartnow/isms-builder/security/advisories/GHSA-63xg-pg3x-g36f), CVSS 6.5/medium, gemeldet von @dav-rest). Der Lese-Pfad war mit `authorize('reader')` geschützt — der niedrigsten Rolle — und gab das komplette Organisationseinstellungen-Objekt unredigiert zurück, inklusive `smtpSettings.pass` und `webdavSettings.appPassword` im Klartext. Jede eingeloggte Rolle (bis hinunter zu `reader`) konnte damit die Zugangsdaten des organisationseigenen Mailservers und/oder WebDAV-Speichers auslesen, obwohl die Schwester-Endpunkte (`/admin/role-settings`, `/admin/users`) korrekt auf `admin` beschränkt waren. Da alle Rollen beim Login auf denselben Endpunkt angewiesen sind (Navigationsreihenfolge, Splash-Einstellungen), wurde der Zugriff nicht komplett gesperrt, sondern `server/routes/admin.js` filtert `smtpSettings.pass` und `webdavSettings.appPassword` jetzt für alle Rollen unterhalb `admin` heraus — alle übrigen (nicht-geheimen) Felder bleiben wie bisher lesbar. Betroffen: alle Versionen bis 1.40.2, sofern SMTP- und/oder WebDAV-Einstellungen konfiguriert wurden.
0 commit comments