Entwicklung & Code
Kritische Sicherheitslücke in GitLab: Angreifer können Projekte löschen
Die Code-Hosting-Plattform GitLab ist verwundbar. Angreifer können an zwei Sicherheitslücken ansetzen und Projektdaten manipulieren oder sogar löschen.
Weiterlesen nach der Anzeige
In einer Warnmeldung versichern die Entwickler, dass sie die Ausgaben 18.11.11, 19.0.8, 19.1.6 und 19.2.4 der GitLab Community Edition und Enterprise Edition repariert haben. Admins von On-Premises-Installationen sollten zeitnah handeln und eine der aktuellen Versionen installieren. Den Entwicklern zufolge sind auf GitLab.com bereits die reparierten Versionen installiert.
Integrität von Projekten gefährdet
Nutzen Angreifer eine „kritische“ Sicherheitslücke (CVE-2026-19478) aus, können sie öffentliche Projekte und Nutzerdaten verändern oder löschen. Die Schwachstelle findet sich in der GraphQL-API einer GitLab-Instanz. Kann ein Angreifer darauf zugreifen, nutzt er die Lücke mit präparierten GraphQL-Anfragen aus.
Im zweiten Fall (CVE-2026-19650 „hoch“) muss ein Opfer mitspielen und etwa auf einen manipulierten Link klicken. Im Anschluss kann ein Angreifer über GET-Anfragen an der GraphQL-API ansetzen und etwa Projekteinstellungen verändern. Wenn ein Opfer Admin-Rechte hat, könnte ein Angreifer mit diesen Rechten ausgestattet ganze Instanzen kompromittieren.
Bislang gibt es vom Softwareentwickler keine Hinweise, dass Angreifer die Lücken bereits ausnutzen. Sie raten aber dringend zu einem zügigen Update. Demzufolge sollten Admins die Patches demnächst installieren, um ihre Instanzen vor möglichen Attacken zu schützen. Schließlich können Angreifer in Softwareentwicklungsumgebungen ziemliches Unheil anrichten. Wer eine nicht mehr im Support befindliche Ausgabe nutzt, muss auf eine noch unterstützte upgraden.
Zuletzt haben die GitLab-Entwickler Ende Juli zu einem zügigen Update geraten.
Weiterlesen nach der Anzeige
(des)
Entwicklung & Code
Herdr: Terminal-Multiplexer sortiert Flotten von Coding-Agenten
Wer mehrere Coding-Agenten parallel an verschiedenen Projekten arbeiten lässt, muss auf deren Ausgaben warten und vor allem den Überblick behalten: Welcher Agent rechnet noch, welcher ist fertig, und wo blockiert eine Rückfrage den nächsten Schritt? Genau an dieser Stelle setzt Herdr an. Der freie Terminal-Multiplexer hält Sitzungen am Leben, ordnet sie nach Projekten und fasst den Zustand von Agenten in einer Seitenleiste zusammen.
Weiterlesen nach der Anzeige
Das im März 2026 veröffentlichte Projekt hat inzwischen auch institutionellen Rückhalt erhalten. Gründer Can Celik kündigte Anfang August die Aufnahme in den Herbstjahrgang 2026 des US-Gründerprogramms Y Combinator an. Y Combinator führt Herdr als Ein-Personen-Unternehmen mit Sitz in Ankara. Y Combinators Standard Deal investiert in jedes aufgenommene Start-up 500.000 US-Dollar. Eine weitere, individuelle Finanzierungsrunde nennt Herdrs Ankündigung nicht.
Herdr liefert kein Sprachmodell und ersetzt keine Agenten wie Claude Code, Codex oder OpenCode. Als auf Coding-Agenten zugeschnittener Konkurrent zu tmux führt Herdr gewöhnliche Terminal-Prozesse aus, ergänzt deren Darstellung aber um die Zustände working, blocked, done,idle und unknown. Die aktuelle stabile Ausgabe ist 0.9. Das in Rust entwickelte Programm steht unter der Apache-2.0-Lizenz. Binärpakete gibt es für Linux und macOS auf x86-64 und ARM64 sowie für Windows auf x86-64. Hinzu kommen unter anderem Homebrew, Nix und mise. Einzelne Funktionen bleiben unter Windows eingeschränkt.
Vom Pane zur Aufmerksamkeitsliste
Die Herdr-Architektur folgt dem Client-Server-Modell klassischer Terminal-Multiplexer. Ein Server stellt die Terminal-Instanzen bereit, unter Unix als Pseudoterminals (PTYs) und unter Windows per ConPTY-Konsolen. Der Client stellt diese nur dar, sodass Shells, Entwicklungsserver und Agenten weiterlaufen, sollte er getrennt werden. Herdr organisiert Terminals in Workspaces, Tabs und Panes, sodass der Nutzer sie entsprechend seines eigenen Workflows gruppieren kann.
Um die Aufmerksamkeit des Nutzers auf die richtigen Agenten lenken zu können, erkennt Herdr Zustände der KI-Agenten per Hook, Plugin oder die Analyse der Terminal-Ausgabe. Optionale Integrationen liefern je nach Werkzeug zusätzlich Sitzungskennung oder Informationen zum Lebenszyklus. Herdr verdichtet die Zustände auf Workspace-Ebene und meldet unbeachtete Rückfragen.
Auch Automatisierung ist vorgesehen. Über Kommandozeile und eine lokale Socket-API lassen sich Panes anlegen, Ein- und Ausgaben übertragen sowie Agentenzustände abfragen. Unter Unix nutzt sie einen Unix Domain Socket, unter Windows eine Named Pipe. Auch tmux lässt sich automatisieren, allerdings ohne die native Integration von Agenten und deren Zuständen.
Weiterlesen nach der Anzeige
Dauerhaft ist nicht unsterblich
Beim Trennen eines Clients oder bei einem Netzwerkausfall laufen Server und Prozesse weiter. Nach einem Neustart des Herdr-Servers oder Rechners dagegen sind Prozesse natürlich beendet. Laut der Restore-Matrix des Projekts stellt Herdr dann Workspaces, Tabs, Pane-Aufteilung, Arbeitsverzeichnisse und Fokus wieder her und setzt Agenten, die das unterstützen, über deren native Sitzungskennung fort.
Die optionale Speicherung der Terminal-Historie ist standardmäßig abgeschaltet, weil sie Zugangsdaten, Token oder Prompts enthalten kann. Ein experimentelles Live-Handoff versucht, Prozesse bei bestimmten Updates zu erhalten, bietet dafür aber keine Garantie.
SSH bleibt der Transportweg
Auch bei entfernten Rechnern ersetzt Herdr nicht SSH. Nutzer können sich wie gewohnt anmelden und Herdr dort starten. Alternativ verbindet die Remote-Funktion herdr --remote host einen lokalen Herdr-Client über OpenSSH mit einem Herdr-Server. OpenSSH übernimmt Authentifizierung und Host-Key-Prüfung. Als Ziel unterstützt dieser Modus nur Linux und macOS. Windows kann seit Herdr 0.8.2 als lokaler Client dienen, aber nicht als Server.
Seit Version 0.9.0 können mehrere Clients unabhängig voneinander verschiedene Workspaces und Tabs anzeigen. Unterschiedliche Tabs passen sich der Größe des jeweiligen Clients an. Teilen sich Clients einen Tab, bestimmt der zuletzt darin aktive Client dessen Größe.
Die am 7. September 2026 veröffentlichte Version bündelt außerdem lokale und per SSH angebundene Server in einem Fenster. Eine gemeinsame Agentenliste zeigt deren Zustände. Während die ausgewählte Maschine die sichtbaren Terminal-Inhalte liefert und Eingaben erhält, aktualisieren die übrigen Verbindungen weiterhin Statusinformationen und Benachrichtigungen. Diese Funktion wird derzeit unter Linux und MacOS unterstützt. Ein gespeichertes Maschinenprofil bindet jeweils eine Sitzung ein, nicht sämtliche Sitzungen eines Hosts.
Omarchy integriert Herdr und steuert Code bei
Besonders sichtbar wurde Herdr durch Omarchy, die Linux-Distribution des umstrittenen David Heinemeier Hansson. Deren vierte Hauptversion Quattro hat den Multiplexer zusätzlich zu tmux integriert. Die mitgelieferte Konfiguration orientiert sich mit Ctrl+Space als Prefix an Omarchys tmux-Belegung. Die Versionshinweise zu Herdr 0.8.2 nennen DHH als Mitwirkenden an Fenstertiteln, Pane-Größenänderung und Tab-Verschiebung. Omarchy ist damit Konsument und DHH Contributor.
Für ein oder zwei Sitzungen, deren Inhalt bekannt ist, bleibt ssh plus tmux die nüchterne Wahl. tmux ist seit fast zwei Jahrzehnten erprobt, breit paketiert und detailliert konfigurierbar. Wer Statusleisten, Hooks und Benachrichtigungen eingerichtet hat, gewinnt durch einen Wechsel womöglich wenig.
Mehr Orientierung, weniger Reife
Herdr wird interessanter, wenn mehrere Agenten über Repositories und Rechner verteilt arbeiten und die menschliche Aufmerksamkeit knapp wird. Statusübersicht, Benachrichtigungen, Sitzungswiederaufnahme und semantische API reduzieren dann Eigenbau. Mausbedienung und repositoryorientierte Organisation senken zudem die Einstiegshürde.
Herdr bleibt jedoch jung: In weniger als fünf Monaten sprang es von Version 0.1 auf 0.8. Auch der Plugin-Marktplatz ist keine kuratierte vertrauenserweckende Anlaufstelle. Einträge werden laut Projekt automatisch erfasst und nicht geprüft. Plugins, Hooks und Socket-API haben Zugriff auf Entwicklungsumgebung und Terminal-Inhalte und verlangen entsprechende Vorsicht.
Somit macht Herdr tmux nicht überflüssig. Es behandelt Terminals zusätzlich als Warteschlange für menschliche Entscheidungen. Ob das ein eigenes Laufzeitsystem rechtfertigt, hängt weniger von der Zahl offener Panes ab als davon, wie oft eines unbemerkt auf eine Antwort wartet.
(axk)
Entwicklung & Code
Microsoft leitet letzte Phase für SQL Data Sync ein
Microsoft hat die nächste Stufe bei der Einstellung von SQL Data Sync gezündet: Seit dem 9. September lassen sich in Azure-Abonnements, die den Dienst bislang nicht genutzt haben, keine neuen SQL-Data-Sync-Bereitstellungen mehr anlegen. Bestehende Nutzer können Sync-Gruppen und Mitgliedsdatenbanken dagegen noch bis zum vollständigen Aus des Dienstes am 30. September 2027 erstellen, ändern und betreiben.
Weiterlesen nach der Anzeige
Die Einstellung hatte Microsoft bereits 2024 mit dreijähriger Übergangsfrist angekündigt. SQL Data Sync gleicht ausgewählte Daten zwischen mehreren Datenbanken ab, sowohl zwischen Azure SQL Database als auch mit SQL-Server-Instanzen im eigenen Rechenzentrum. Die Daten können dabei je nach Konfiguration in beide Richtungen fließen. Microsoft beschreibt die Einstellung und die vorgesehenen Migrationspfade in seiner Dokumentation.
Keine Einschränkung für bestehende Abonnements
Die neue Einschränkung trifft ausdrücklich ausschließlich Azure-Abonnements, die SQL Data Sync zuvor nie eingesetzt haben. Für Abonnements, die SQL Data Sync bereits nutzen, ändert sich zunächst nichts: Administratoren dürfen weiterhin Sync-Gruppen anlegen und verwalten sowie Datenbanken als Mitglieder hinzufügen. Microsoft will damit verhindern, dass kurz vor dem Endtermin noch neue Abhängigkeiten von dem auslaufenden Dienst entstehen. Die Details zur nun begonnenen letzten Ausmusterungsphase nennt Microsoft im Azure-SQL-Blog.
SQL Data Sync organisiert die Replikation in Sync-Gruppen nach einem Hub-and-Spoke-Prinzip. Als Hub dient stets eine Azure SQL Database; weitere Azure-SQL-Datenbanken oder SQL-Server-Datenbanken können als Mitglieder teilnehmen. Bei lokalen SQL-Server-Datenbanken ist zusätzlich ein lokaler Sync-Agent nötig. Der Dienst kann Daten in beide Richtungen oder nur vom Hub zu einem Mitglied beziehungsweise umgekehrt übertragen.
Inventur vor der Migration
Microsoft rät betroffenen Organisationen, zunächst alle vorhandenen Bereitstellungen zu erfassen – auch inaktive Sync-Gruppen. Dazu gehören Hub- und Mitgliedsdatenbanken, gegebenenfalls installierte Sync-Agenten sowie die Anwendungen, die auf replizierte Daten angewiesen sind. In kleineren Umgebungen lassen sich die Sync-Gruppen über den Bereich „Sync to other databases“ einer Azure SQL Database im Azure-Portal prüfen. Für größere Azure-Landschaften verweist Microsoft auf die PowerShell und die Azure-SQL-Management-REST-API.
Vor der Umstellung sollten Administratoren außerdem Datenfluss, Synchronisierungsrichtung, Intervall, Datenvolumen sowie Anforderungen an Latenz und Verfügbarkeit festhalten. Das ist wichtig, weil SQL Data Sync kein einheitliches Nachfolgeprodukt erhält. Je nach bisherigem Einsatz kann die Migration eine bloße Umkonfiguration sein oder einen Umbau der Replikationsarchitektur erfordern.
Weiterlesen nach der Anzeige
Ersatz hängt vom Einsatzfall ab
Für geplante oder inkrementelle Übertragungen nennt Microsoft Azure Data Factory als Alternative. Das eignet sich etwa, wenn Daten in festen Intervallen für ein Data Warehouse oder einen Reporting-Bestand kopiert werden sollen. Für die einseitige Verteilung von SQL Server zu Azure SQL Database verweist der Konzern auf die transaktionale Replikation.
Geht es vor allem um lesende Replikate oder regionale Verfügbarkeit, kommen etwa aktive Georeplikation und Read Replicas infrage. Für Reporting-Replikate vollständiger Datenbanken nennt Microsoft Always On Availability Groups bei SQL Server auf Azure-VMs sowie Managed Instance Link bei Azure SQL Managed Instance. Daneben führt die Migrationsdokumentation Azure Functions mit Azure-SQL-Triggern für anwendungsspezifische Synchronisation sowie Mirroring in Microsoft Fabric für Analyseumgebungen auf. Welche Variante passt, hängt unter anderem von Quell- und Zielplattform, Datenrichtung, Topologie, zulässiger Verzögerung und Durchsatz ab. Die Migrationsdokumentation enthält dazu eine Übersichtstabelle, die alle Pfade nach Quell- und Zielplattform aufschlüsselt.
Nach erfolgreicher Validierung der Ersatzlösung in einer Nicht-Produktivumgebung empfiehlt Microsoft, die automatische Synchronisierung der bisherigen Gruppe vorübergehend abzuschalten. Erst wenn Anwendungen nicht mehr auf SQL Data Sync angewiesen sind, sollten Unternehmen die alten Ressourcen entfernen. Spätestens zum 30. September 2027 muss der Umstieg abgeschlossen sein.
(fo)
Entwicklung & Code
Neu in .NET 10.0 [40]: JSON Patch zum reinen Testen von Werten
Um Werte zu testen, ohne etwas zu ändern, lässt sich in .NET 10.0 JSON Patch verwenden.
Weiterlesen nach der Anzeige

Dr. Holger Schwichtenberg ist technischer Leiter des Expertennetzwerks www.IT-Visions.de, das mit 53 renommierten Experten zahlreiche mittlere und große Unternehmen durch Beratungen und Schulungen sowie bei der Softwareentwicklung unterstützt. Durch seine Auftritte auf zahlreichen nationalen und internationalen Fachkonferenzen sowie mehr als 90 Fachbücher und mehr als 1500 Fachartikel gehört Holger Schwichtenberg zu den bekanntesten Experten für .NET und Webtechniken in Deutschland.
Das folgende Beispiel zeigt die Anwendung der neuen Klasse JsonPatchDocument aus System.Text.Json Version 10.0 auf ein JSON-Patch-Dokument, dass nur aus Test-Operationen besteht:
CUI.H2("Testen mit JSON Patch-Dokument");
string jsonPatchTest = """
[
{ "op": "test", "path": "/FirstName", "value": "Dr. Holger" },
{ "op": "test", "path": "/PrivateEmail", "value": null},
{ "op": "test", "path": "/PrivateWebsite", "value": null},
{ "op": "test", "path": "/Address/ZipCode", "value": "45257" }
]
""";
// JSON Patch-Dokument laden
JsonPatchDocument? patchTestDoc = JsonSerializer.Deserialize>(jsonPatchTest);
// JSON Patch-Dokument anwenden auf das Person-Objekt
patchTestDoc!.ApplyTo(person, patchError => CUI.PrintError(patchError.ErrorMessage));
In diesem Fall gibt es keine Fehlerausgabe. Wenn man das JSON-Patch-Dokument aber verändert
CUI.H2("Reines Testen eines Objekts mit JSON Patch-Dokument (absichtlich mit drei Fehlern!)");
string jsonPatchTest = """
[
{ "op": "test", "path": "/FirstName", "value": "Dr.Holger" },
{ "op": "test", "path": "/PrivateEmail", "value": null},
{ "op": "test", "path": "/PrivateWebsite", "value": ""},
{ "op": "test", "path": "/Address/ZipCode", "value": "45251" }
]
""";
bekommt man drei Fehlermeldungen:

Drei Fehler zeigt die Ausgabe (Abb. 1).
Dabei ist die Fehlermeldung bei 'PrivateWebsite' ungünstig, denn sie unterscheidet nicht zwischen Leerstring und Null. Im Objekt steht null, getestet wird auf Leerstring. In der Fehlermeldung steht jedoch in beiden Fällen ' '.
Weiterlesen nach der Anzeige
(rme)
-
Entwicklung & Codevor 1 MonatKommentar: KI-Verbote in Open-Source-Projekten können KI nicht stoppen
-
UX/UI & Webdesignvor 2 MonatenRegional & mit Gefühl: Identity für Klimafonds Baden-Württemberg › PAGE online
-
UX/UI & Webdesignvor 2 MonatenVom Scribble zur Sammelkarte: Kreativer KI-Workflow mit Adobe Photoshop, Illustrator und Firefly Boards › PAGE online
-
Datenschutz & Sicherheitvor 2 MonatenKommentar: OpenAI – KI-Sicherheit nur ein Marketing-Gag?
-
Online Marketing & SEOvor 2 MonatenGoogle Unternehmensprofil optimieren ► Anleitung & Tipps
-
Künstliche Intelligenzvor 3 Monaten
Top 10: Der beste ergonomische Bürostuhl im Test – Herman Miller vor Flexispot
-
Künstliche Intelligenzvor 3 Monaten
Top 10: Der beste Saugroboter mit Wischfunktion im Test – Testsieger Roborock
-
UX/UI & Webdesignvor 3 MonatenSchriftfamilie Mainboard: Technisch und windschnittig › PAGE online
