Repository navigation
OpenGewerk 0.6.2
Diese Fassung enthält eine Sicherheitskorrektur. Was betroffen war, steht im Abschnitt „Sicherheit“ und im Advisory. Wer OpenGewerk betreibt, aktualisiert bitte bald.
Eine Sicherheitsfassung. Das Abbild baut auf Node 24.22.1, und der Renderer für PDFs läuft auf 2.57.3, das dieselbe Fassung von Node mitbringt; beide schließen damit die Lücken aus dem Sicherheitsrelease von Node vom 21.10.2026, darunter CVE-2026-111497. Dazu kommen die Bausteine, die das Fundament seit 0.6.1 für OpenGewerk Haustechnik bekam: Routen, die nur ein Mitglied verlangen, ein Schlüssel der Instanz zum Signieren von PDFs und Buchungen im Lager ohne die Person, die gebucht hat. In der Handwerkersoftware zu sehen ist davon nur, dass die Karte eines Etiketts das PDF herunterlädt.
Aktualisiert wird wie bei jeder Fassung, vorher gesichert. Eine Migration kommt dazu, 0088_instance_signing, mit den Spalten für den Schlüssel der Instanz.
Hinzugefügt
- Eine Route kann sagen, dass sie nur ein Mitglied des Mandanten verlangt und kein Recht (
RequiresMembership): der Guard stellt fest, wer fragt, im Mandanten der Sitzung, und reicht die Identität mit dem Grundmembershipweiter; der Gang über die Routen zählt sie als eigene Art (needsMembershipOnly). Warum: OpenGewerk Haustechnik zeigt die eigenen Qualifikationen und die eigene Pflichtenübertragung einer Person ohne ein Recht, weil es ihre eigenen Daten sind (OpenGewerk/opengewerk-haustechnik#543). - Die Instanz hat einen Schlüssel zum Signieren von PDFs, mit einem Zertifikat, das sie sich selbst ausstellt, und das Fundament eine CMS-Signatur, wie PAdES sie in ein PDF setzt (
signDetached,instanceSigningKey). Der Schlüssel entsteht mit dem ersten signierten PDF oder in den Einstellungen der Instanz, versiegelt ininstance_settings, und das Protokoll der Instanz hält ihn nie; ein früheres Zertifikat bleibt bekannt. Warum: OpenGewerk Haustechnik signiert jedes PDF mit einer Unterschrift darin, damit eine spätere Änderung in jedem PDF-Programm auffällt (OpenGewerk/opengewerk-haustechnik#457). Die Handwerkersoftware signiert noch nichts und zeigt die Karte "Signatur der PDFs" deshalb nicht; sie bekommt die Spalten mit der Migration0088_instance_signing.
Geändert
- Die Karte eines Etiketts lädt das PDF herunter, unter dem Namen "Etikett" mit dem gedruckten Code, statt es in einem Tab zu öffnen; der Knopf heißt "PDF herunterladen". Warum: in einem Tab ohne die Leiste eines PDF-Programms, etwa in der installierten Anwendung, ließ sich das Etikett ansehen, aber nicht speichern (OpenGewerk/opengewerk-haustechnik#509).
- Eine Buchung im Lager darf ohne die Person stehen, die gebucht hat (
stock_movements.booked_bynimmt null). Warum: OpenGewerk Haustechnik lässt die Person nach drei Jahren gehen und behält die Buchung (OpenGewerk/opengewerk-haustechnik#412). Die Handwerkersoftware legt die Tabelle nicht an. - Das Security-Review steht auf
731e352von opengewerk/.github (OpenGewerk/.github#45), dem Stand, der ein angehobenes Submodul selbst belegt, wie in den übrigen Repositories der Organisation.
Sicherheit
- Das Abbild baut auf
node:24-alpinemit Node 24.22.1 statt 24.22.0, und der Renderer für PDFs läuft aufbrowserless/chromium2.57.3 statt 2.57.1, das ebenfalls Node 24.22.1 mitbringt. Warum: Node 24.22.1 schließt die Lücken aus dem Sicherheitsrelease vom 21.10.2026, darunter CVE-2026-111497 (der Brotli-Decoder schreibt außerhalb seines Puffers, was fremden Code ausführen lässt).
Installieren und aktualisieren
Das Paket opengewerk-0.6.2.tar.gz enthält den Ordner opengewerk/docker. Zum Installieren entpacken, mit tar --no-same-owner -xzf opengewerk-0.6.2.tar.gz, und im Ordner opengewerk sh docker/start.sh aufrufen. Für ein Update das neue Paket genauso an dieselbe Stelle entpacken, die .env bleibt, und derselbe Befehl. Gebaut wird dabei nichts, geholt werden die Abbilder dieser Fassung, für x86_64 und ARM64:
ghcr.io/opengewerk/opengewerk:0.6.2(sha256:56f2002edc53eecb769d5037de41161be4f10134c5b90d77af7a365d5046f903)ghcr.io/opengewerk/backup:0.6.2(sha256:524b6ba82044b3ed48f5099237db92972f18476fdb69576f46a08674224265bd)
Dieselben Abbilder liegen mit denselben Digests und Signaturen auch auf Docker Hub, als opengewerk/opengewerk:0.6.2 und opengewerk/backup:0.6.2. Das Paket holt sie trotzdem aus ghcr.io, denn Docker Hub begrenzt anonyme Pulls.
Gebraucht werden Docker und Docker Compose ab 2.22. Beide Abbilder sind ohne Schlüssel über Sigstore signiert. Prüfen:
cosign verify ghcr.io/opengewerk/opengewerk:0.6.2 \
--certificate-identity https://github.com/opengewerk/opengewerk/.github/workflows/release.yml@refs/tags/v0.6.2 \
--certificate-oidc-issuer https://token.actions.githubusercontent.com