<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Gitea on Schallberts Blog</title><link>https://blog.schallbert.de/tags/gitea/</link><description>Recent content in Gitea on Schallberts Blog</description><generator>Hugo</generator><language>de</language><lastBuildDate>Sun, 04 Oct 2026</lastBuildDate><atom:link href="https://blog.schallbert.de/tags/gitea/index.xml" rel="self" type="application/rss+xml"/><item><title>Kritische Schwachstellen bei Gitea (und Forgejo)</title><link>https://blog.schallbert.de/gitea-critical-vulnerability-active-exploitation-rce/</link><pubDate>Sun, 04 Oct 2026</pubDate><author>Schallbert</author><guid>https://blog.schallbert.de/gitea-critical-vulnerability-active-exploitation-rce/</guid><description type="html">&#10; &lt;img src="https://blog.schallbert.de/assets/images/posts/2026-10-04-gitea-lower-than-V27-vulnerable-cve.avif"&#10; class="post-cover"&#10; alt="Image: The logo of Gitea, a cup of tea. It is boiling hot, and steam is emanating from the cup&amp;#39;s contents. In one of the steam clouds, there is a Jolly Roger. The image caption says &amp;#39;Gitea "&#10; title="Kritische Schwachstellen bei Gitea (und Forgejo)" /&gt;&#10;&lt;aside class="update-box update-box--error" role="note"&gt;&#10; &lt;span class="update-box__icon" aria-hidden="true"&gt;&#10; ⛔&#10; &lt;/span&gt;&#10;&#10; &lt;div class="update-box__body"&gt;&#10; &lt;div class="update-box__heading"&gt;&#10; &lt;strong class="update-box__title"&gt;&#10; &#10; Update: Forgejo v16.0.4 und abwärts ebenfalls betroffen&#10; &#10; &lt;/strong&gt;&#10;&#10; &lt;time datetime="2026-10-02T00:00:00Z"&gt;&#10; 02. Okt. 2026&#10; &lt;/time&gt;&#10; &#10; &lt;/div&gt;&#10;&#10; &#10; &lt;div class="update-box__content"&gt;&#10; Die &lt;a href="https://forgejo.org/releases/16.x/" target="_blank" rel="noopener noreferrer" class="external-link"&gt;Release notes&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; lesend, betrachte ich die Software-Forge-Lösung &lt;a href="https://forgejo.org/" target="_blank" rel="noopener noreferrer" class="external-link"&gt;Forgejo&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; (ein Fork von Gitea) als ebenfalls von den unten beschriebenen CVEs betroffen. Erst mit v16.0.5 vom 17.09.2026 aufwärts sind sämtliche in diesem Artikel diskutierten CVEs behoben. Kommt im Artikel also das Wort &amp;lsquo;Gitea&amp;rsquo; vor, ist Forgejo ausdrücklich mitgemeint.&#10; &lt;/div&gt;&#10; &#10; &lt;/div&gt;&#10;&lt;/aside&gt;&#10;&lt;h2 id="gewahrwerdung"&gt;Gewahrwerdung&lt;/h2&gt;&#10;&lt;p&gt;Wie so oft beginnt auch diese Geschichte mit einem Netzwerk der menschlichen Kommunikation. Dieser &lt;a href="https://blog.schallbert.de/gitea-critical-vulnerability-active-exploitation-rce/#credits"&gt;unersetzliche Austausch&lt;/a&gt; hat schon viel zur Sicherheit der Software beigetragen, mit der ich diesen Blog betreibe. Nun kann ich eine weitere Sicherheitslücke schließen. Aber der Reihe nach.&lt;/p&gt;&#10;&lt;h3 id="gitea-als-angriffsziel"&gt;Gitea als Angriffsziel&lt;/h3&gt;&#10;&lt;p&gt;Ich hörte, dass die selbst gehostete Versionsverwaltungslösung &lt;a href="https://en.wikipedia.org/wiki/Gitea" target="_blank" rel="noopener noreferrer" class="external-link"&gt;Gitea&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; eines meiner Bekannten Ziel einer Attacke geworden ist. Hierbei wurde eine &lt;a href="https://www.crowdstrike.com/en-us/cybersecurity-101/cyberattacks/remote-code-execution/" target="_blank" rel="noopener noreferrer" class="external-link"&gt;RCE&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; (Remote Code Execution) möglich und tatsächlich auch ausgeführt.&lt;/p&gt;&#10;&lt;h3 id="warum-ist-gitea-ein-attraktives-ziel"&gt;Warum ist Gitea ein attraktives Ziel?&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Diebstahl von (Firmen)geheimnissen: Bei Zugriff auf Repositories ist vertraulicher Quellcode gefährdet, offengelegt zu werden.&lt;/li&gt;&#10;&lt;li&gt;Abfluss von Zugangsdaten: Wird ein größeres Produkt mit Schnittstellen in Gitea verwaltet, sind &lt;a href="https://en.wikipedia.org/wiki/API_key" target="_blank" rel="noopener noreferrer" class="external-link"&gt;API keys&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;, Konten und Passwörter in Gefahr, falls sie unverschlüsselt vorliegen. Abhilfe schaffen Tools wie &lt;a href="https://dev.to/vnjogani/a-guide-to-git-secret-49g3" target="_blank" rel="noopener noreferrer" class="external-link"&gt;git-secret&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;; sie werden aber durch Einführen zusätzlicher Komplexität noch nicht flächendeckend eingesetzt.&lt;/li&gt;&#10;&lt;li&gt;Klassische Rechteeskalation: Unter Umständen kann man durch Ausbruch aus der Gitea-Software die ganze Maschine übernehmen.&lt;/li&gt;&#10;&lt;li&gt;Nutzen des &lt;a href="https://gitea.com/gitea/runner" target="_blank" rel="noopener noreferrer" class="external-link"&gt;runner&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;: Schafft man es den Runner zu kapern, kann man auch ohne erweiterte Rechte Ressourcen der Hostmaschine in Beschlag nehmen und für eigene Zwecke missbrauchen (Stichwort &lt;a href="https://dev.to/golu12/crypto-mining-is-killing-all-free-cicd-platforms-28ip" target="_blank" rel="noopener noreferrer" class="external-link"&gt;Cryptominers in CI/CD&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;).&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="was-ist-eine-rce"&gt;Was ist eine RCE?&lt;/h3&gt;&#10;&lt;p&gt;Eine Remote Code Execution ist ein erfolgreicher Angriff, bei dem nicht autorisierter Code ohne Zutun von Besitzer oder Administration der befallenen Ressource aus der Ferne über das Netzwerk eingespielt und ausgeführt werden kann.&lt;/p&gt;&#10;&lt;h2 id="das-gitea-ökosystem"&gt;Das Gitea-Ökosystem&lt;/h2&gt;&#10;&lt;p&gt;Als Versionsverwaltung und &lt;a href="https://en.wikipedia.org/wiki/Forge_%28software%29" target="_blank" rel="noopener noreferrer" class="external-link"&gt;forge&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; gehört zum Basisumfang von Gitea die Möglichkeit, webbasiert und kollaborativ Software zu entwickeln und zu bauen. Daher ist vorgesehen, dass sich Nutzer registrieren und unter Umständen sogar &lt;a href="https://github.com/features/actions" target="_blank" rel="noopener noreferrer" class="external-link"&gt;Aktionen&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; ausführen können, damit Software automatisiert gebaut und/oder ausgeliefert werden kann.&lt;/p&gt;&#10;&lt;p&gt;Genau dieses automatische Nachladen und Ausführen von Code kann böse Folgen haben, wenn Sicherheitslücken in der Verwaltungssoftware selbst bestehen.&lt;/p&gt;&#10;&lt;h3 id="verwundbarkeit-durch-offene-registrierung"&gt;Verwundbarkeit durch offene Registrierung&lt;/h3&gt;&#10;&lt;p&gt;Lässt man als Betreiberin die Registrierung neuer Accounts (&amp;ldquo;self-registration&amp;rdquo;) in Giteas Konfiguration auf dem Standardwert &lt;code&gt;DISABLE_REGISTRATION = false&lt;/code&gt;, so können sich Nutzerinnen selbst einschreiben, eigene Repository anlegen, issues aufmachen und alles tun, was ohne Adminrechte möglich ist.&lt;/p&gt;&#10;&lt;p&gt;Hat man zusätzlich noch den Standardwert &lt;code&gt;REQUIRE_SIGNIN_VIEW = false&lt;/code&gt; gesetzt, können auch unauthentisierte Besucher öffentliche Repositories sehen, die Seiten von Gitea browsen und vor allem die öffentliche &lt;a href="https://docs.gitea.com/api/" target="_blank" rel="noopener noreferrer" class="external-link"&gt;API des Gitea Endpoints&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; ansprechen.&lt;/p&gt;&#10;&lt;h3 id="verwundbarkeit-durch-standardkonfiguration-für-reverse-proxies"&gt;Verwundbarkeit durch Standardkonfiguration für Reverse Proxies&lt;/h3&gt;&#10;&lt;p&gt;In der Standardkonfiguration des Gitea Docker image vertraut Gitea &lt;code&gt;&amp;lt;V1.26.3&lt;/code&gt; allen Proxies.&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# gitea/app.ini&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;[security]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;REVERSE_PROXY_LIMIT&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;REVERSE_PROXY_TRUSTED_PROXIES&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;* # This is a vulnerability!&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="die-sicherheitslücken"&gt;Die Sicherheitslücken&lt;/h2&gt;&#10;&lt;p&gt;Womit haben wir es hier zu tun? Mit mehreren kritischen Sicherheitslücken des Ausmaßes &lt;code&gt;9.8/10&lt;/code&gt; &lt;a href="https://www.first.org/cvss/" target="_blank" rel="noopener noreferrer" class="external-link"&gt;CVSS score&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;, von denen es bekannte Fälle der Ausnutzung gibt.&lt;/p&gt;&#10;&lt;figure class="media-frame media-frame--center"&gt;&#10; &lt;img src="https://blog.schallbert.de/assets/images/posts/2026-10-04-cvss-calculator.avif" alt="Image: Common vulnerability scoring system calculator. The selectors are switched in a way that reproduces a critical vulnerability over a network vector without user interaction as discussed in this post."&gt;&lt;/figure&gt;&#10;&lt;h3 id="exkurs-die-cvss-bewertung"&gt;Exkurs: Die CVSS-Bewertung&lt;/h3&gt;&#10;&lt;p&gt;Zur Einordnung der Bewertung von &amp;ldquo;kritisch&amp;rdquo;: Die CVSS-Kriterien sind ähnlich aufgebaut wie in der klassischen Gefahren- und &lt;a href="https://de.wikipedia.org/wiki/Risikoanalyse" target="_blank" rel="noopener noreferrer" class="external-link"&gt;Risikoanalyse&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;, einem Zweig der Ingenieurswissenschaften. Anders als dort liegt der Fokus allerdings nicht in der Analyse möglicher Fehlerfälle, Schweregrad, Eintritts- und Ausfallwahrscheinlichkeit oder Detektierbarkeit, sondern auf dem Schwierigkeitsgrad der Ausnutzung und möglicher Auswirkungen.&lt;/p&gt;&#10;&lt;h3 id="bedeutung-der-cvss-einzelwerte"&gt;Bedeutung der CVSS-Einzelwerte&lt;/h3&gt;&#10;&lt;p&gt;Je höher der CVSS-Wert, desto einfacher ist die Sicherheitslücke auszunutzen und desto gravierender sind mögliche Folgen hinsichtlich der Datensicherheitskriterien (&lt;a href="https://en.wikipedia.org/wiki/CIA_triad" target="_blank" rel="noopener noreferrer" class="external-link"&gt;Confidentiality, Integrity, Availability&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;).&lt;/p&gt;&#10;&lt;p&gt;Das Bild oben zeigt eine Konstellation, in der eine mögliche Attacke aus der Ferne (Netzwerk) mit geringem Aufwand (Complexity, meint Systemhärtung) ohne Randbedingungen (Requirement, z.B. das Anfahren einer vulnerablen Stelle im Code, Vorhandensein eines bestimmten Zustandes des angegriffenen Systems, Auslösen einer &lt;a href="https://en.wikipedia.org/wiki/Race_condition" target="_blank" rel="noopener noreferrer" class="external-link"&gt;race condition&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; etc.), ohne zusätzliche Rechte (als Gast ohne Authentisierung oder Autorisierung) oder Interaktion mit dem User oder der Administratorin des Systems durchgeführt werden kann.&lt;/p&gt;&#10;&lt;p&gt;Das wäre für sich genommen noch nicht schlimm, wenn niemand das System benötigt &lt;code&gt;Score 0.0&lt;/code&gt; und nichts Interessantes darauf gespeichert ist. Liegen dort allerdings sensitive Daten &lt;code&gt;Confidentiality, 8.7&lt;/code&gt; oder zum Beispiel eine Datenbank, deren Werte sich nun manipulieren lassen &lt;code&gt;Integrity, 8.7&lt;/code&gt;, oder wird auch nur die Verfügbarkeit von benötigten Daten eingeschränkt &lt;code&gt;Availability, 8.7&lt;/code&gt;, befindet man sich bereits im Bereich &lt;code&gt;High&lt;/code&gt;.&lt;/p&gt;&#10;&lt;p&gt;Mit diesem Wissen nehmen wir nun den Transfer auf die kritischen Lücken von Gitea vor.&lt;/p&gt;&#10;&lt;h3 id="cve-2026-20896-authentication-bug-in-gitea-through-reverse-proxies"&gt;CVE-2026-20896: Authentication bug in Gitea through reverse-proxies&lt;/h3&gt;&#10;&lt;p&gt;Kommt ein Angreifer hinter den Reverse Proxy (oder ist gar kein Reverse Proxy vorgeschaltet), kann er eine Anfrage mit &lt;code&gt;X-WEBAUTH-USER&lt;/code&gt; im Header direkt an die Gitea-Instanz senden und sich für einen Reverse Proxy ausgeben. Ist Gitea gleichzeitig darauf eingestellt, &lt;a href="https://app.opencve.io/cve/CVE-2026-20896" target="_blank" rel="noopener noreferrer" class="external-link"&gt;allen reverse proxies zu vertrauen&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; &lt;code&gt;REVERSE_PROXY_TRUSTED_PROXIES = *&lt;/code&gt;, so geht es davon aus, dass bereits &lt;a href="https://df00tech.com/detections/blog/cve-2026-20896" target="_blank" rel="noopener noreferrer" class="external-link"&gt;authentisiert wurde und eine gültige Session vorliegt&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;. Der Angreifer erhält also Nutzerrechte mit Schreibzugriff auf Repositories, obwohl er nicht mal einen Account angelegt hat.&lt;/p&gt;&#10;&lt;p&gt;Das eigentliche Lücke ist hier das unhinterfragte Vertrauen gegenüber dem Sender des Headers ohne weiteren Abgleich mit einem Session Token oder ähnlichem; das Annehmen desselben von fremden Quellen erzeugt lediglich die Verwundbarkeit.&lt;/p&gt;&#10;&lt;p&gt;Für diesen Bug gibt es &lt;a href="https://www.cloudlinktech.com/news/active-attacks-exploit-critical-gitea-docker-auth-bug/" target="_blank" rel="noopener noreferrer" class="external-link"&gt;Belege für bereits erfolgte Attacken&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h3 id="cve-2026-59774-file-read-flaw-for-anything-the-gitea-service-account-can-read"&gt;CVE-2026-59774: File-read flaw for anything the Gitea Service Account can read&lt;/h3&gt;&#10;&lt;p&gt;Diese kritische Sicherheitslücke basiert auf einer unzureichenden Eingabeprüfung des &lt;a href="https://docs.gitea.com/next/administration/external-renderers/" target="_blank" rel="noopener noreferrer" class="external-link"&gt;eingebauten Textrenderers von Gitea&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; für &lt;a href="https://en.wikipedia.org/wiki/Org-mode" target="_blank" rel="noopener noreferrer" class="external-link"&gt;org-mode&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; Dateien. Eine detaillierte Beschreibung des Vektors und zu möglichen Wegen eines Angriffs kann auf &lt;a href="https://www.satyamrastogi.com/blog/gitea-org-mode-unauthenticated-file-read-cve-2026-59774/" target="_blank" rel="noopener noreferrer" class="external-link"&gt;Saytam Rastogis&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; hervorragendem Blog nachgelesen werden.&lt;/p&gt;&#10;&lt;p&gt;Kurzgesagt kann sich ein Angreifer mit Zugriff auf zumindest ein öffentliches Repository eine bösartige &lt;code&gt;.org&lt;/code&gt;-Datei zusammenbasteln, mit deren Hilfe er Giteas Konfiguration &lt;code&gt;app.ini&lt;/code&gt; auslesen und damit auf darin enthaltene Secrets zugreifen kann, welche ihm erweiterte Rechte zugestehen oder ihn zumindest lateral auf dem System bewegen lassen.&lt;/p&gt;&#10;&lt;p&gt;Dies kann laut &lt;a href="https://thehackernews.com/2026/08/critical-gitea-flaw-let-unauthenticated.html" target="_blank" rel="noopener noreferrer" class="external-link"&gt;hacker news&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; und &lt;a href="https://github.com/go-gitea/gitea/security/advisories/GHSA-6v53-hr58-556r" target="_blank" rel="noopener noreferrer" class="external-link"&gt;Giteas eigenen Leuten&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; zufolge beispielsweise auch dazu ausgenutzt werden, die Registration Token eines Runners auszulesen und selbigen zu übernehmen.&lt;/p&gt;&#10;&lt;h3 id="cve-2026-60004-rce-allowing-attacker-with-ordinary-user-rights-to-execute-arbitrary-shell-commands-as-the-gitea-os-user"&gt;CVE-2026-60004: RCE allowing attacker with ordinary user rights to execute arbitrary shell commands as the Gitea OS user.&lt;/h3&gt;&#10;&lt;p&gt;Diese Sicherheitslücke ist deswegen besonders schlimm, weil sie zusätzlich eine &lt;a href="https://www.thehackerwire.com/vulnerability/CVE-2026-60004/" target="_blank" rel="noopener noreferrer" class="external-link"&gt;privilege escalation ermöglicht&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&amp;ldquo;The vulnerability in question is CVE-2026-60004 (CVSS score: 9.8), a case of remote code execution that allows an attacker with ordinary write access to a repository to execute arbitrary shell commands as the Gitea OS user.&amp;rdquo; &lt;a href="https://thehackernews.com/2026/08/critical-gitea-rce-actively-exploited.html" target="_blank" rel="noopener noreferrer" class="external-link"&gt;thehackernews&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;, Aug-2026&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;Das Ausnutzen dieser Lücke kann den Angreifer also die gesamte Gitea-Instanz übernehmen lassen, sofern er Schreibzugriff auf irgendein (evtl. sogar öffentliches) Repository hat.&lt;/p&gt;&#10;&lt;h2 id="das-lagebild"&gt;Das Lagebild&lt;/h2&gt;&#10;&lt;p&gt;&lt;figure class="media-frame media-frame--right"&gt;&#10; &lt;img src="https://blog.schallbert.de/assets/images/posts/2026-10-04-gitea-cve-chaining.avif" alt="Image: A decision tree, connecting the dots between the three discussed CVEs. Baseline message is that the system has to be regarded as compromised in case an attacker is able to get ordinary write access to any repository on the instance which can be done by exploiting any of the discussed CVEs."&gt;&lt;/figure&gt;&#10;Es gibt noch weitere kritische Sicherheitslücken, allerdings könen sich Angreifer mit einer Kombination der obigen Darstellungen ohne großen Aufwand&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Als normale User auf dem Gitea-System bewegen, &lt;em&gt;ohne sich registriert zu haben&lt;/em&gt;, und &lt;em&gt;ohne SSH-Zugriff&lt;/em&gt; zu benötigen&lt;/li&gt;&#10;&lt;li&gt;Sich als Gitea-Service User ausgeben&lt;/li&gt;&#10;&lt;li&gt;Actions übernehmen oder sogar Workflows injizieren und ausführen&lt;/li&gt;&#10;&lt;li&gt;Mit etwas Mehraufwand die gesamte Instanz übernehmen, verschlüsseln, Lösegeld verlangen usw.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Was mein Bekannter erlebt hat betraf die Punkte eins und drei. Der Angriff wurde sehr wahrscheinlich automatisiert ausgeführt, nachdem das Internet auf verwundbare Instanzen gescannt worden war.&lt;/p&gt;&#10;&lt;p&gt;Zusammengefasst kann man im vorliegenden Fall von einer &lt;a href="https://www.techtimes.com/articles/325724/20260827/cisa-confirms-gitea-cve-2026-60004-exploited-cryptominer-hits-5000-exposed-dev-servers.htm" target="_blank" rel="noopener noreferrer" class="external-link"&gt;Mass-Exploitation Campaign&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; für Cryptomining ausgehen.&lt;/p&gt;&#10;&lt;h3 id="der-cryptominer"&gt;Der Cryptominer&lt;/h3&gt;&#10;&lt;p&gt;Bei meinem Bekannten wird folgende Datei als statisch gelinkte Executable (!) auf dem System abgelegt: &lt;code&gt;gitea/data/gitea/sys_health_s3&lt;/code&gt;&#10;Der Hash der Datei legt seiner Ansicht nach nahe, dass ein &lt;a href="https://github.com/xmrig/xmrig" target="_blank" rel="noopener noreferrer" class="external-link"&gt;XMRig cyptominer&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; als &lt;a href="https://www.cloudflare.com/learning/security/glossary/malicious-payload/" target="_blank" rel="noopener noreferrer" class="external-link"&gt;bösartige Payload&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; eingesetzt wurde, der mit &lt;code&gt;pool.hashvault.pro&lt;/code&gt; kommuniziert und dabei einen Großteil der verfügbaren CPU-Leistung für sich beansprucht.&lt;/p&gt;&#10;&lt;h3 id="noch-größerer-schaden-möglich"&gt;Noch größerer Schaden möglich&lt;/h3&gt;&#10;&lt;p&gt;Sogar für den auslegungsüberschreitenden Stöfall habe ich &lt;a href="https://thehackernews.com/2026/09/red-heron-exploits-gitea-rce-to.html" target="_blank" rel="noopener noreferrer" class="external-link"&gt;ein aktuelles (Sep-2026) Beispiel auf Hackernews&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; finden können: Diebstahl von Quellcode, Sammlung von Zugangsdaten, Privilege escalation bis hin zum &lt;code&gt;root&lt;/code&gt;-Zugriff auf das betroffene System.&lt;/p&gt;&#10;&lt;h2 id="wie-entdecke-ich-einen-angriff"&gt;Wie entdecke ich einen Angriff?&lt;/h2&gt;&#10;&lt;p&gt;Schlimmstenfalls gar nicht. Sind Profis zielgerichtet am Werk, können allenfalls die Logdateien zum Zeitpunkt direkt nach dem Einbruch Aufschluss geben. Im Falle, dass man sie sofort liest und interpretieren kann. Aber ich schweife ab&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;&#10;&lt;p&gt;Dannoch sollte man sich folgende Fragen stellen:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Betreibe ich eine vulnerable Gitea-Version (&lt;code&gt;&amp;lt;1.27.2&lt;/code&gt;)?&lt;/li&gt;&#10;&lt;li&gt;Verzichte ich auf eine Monitoring-Lösung, die bei Auffälligkeiten warnt?&lt;/li&gt;&#10;&lt;li&gt;Liegt eine ungewöhnlich &lt;em&gt;hohe CPU-Last&lt;/em&gt; des Systems vor (Deutet auf Kryptominer-Befall hin)?&lt;/li&gt;&#10;&lt;li&gt;Für diesen konkreten Miner kann man zusätzlich nachsehen, ob auf dem System folgende Datei zu finden ist:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;find / -name &lt;span style="color:#e6db74"&gt;&amp;#39;.sys_health_s3&amp;#39;&lt;/span&gt; 2&amp;gt;/dev/null&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Beantwortet man sich nur eine dieser Fragen mit &lt;code&gt;ja&lt;/code&gt;, ist zügiges Handeln angebracht. Dabei ist durch den Schweregrad der Sicherheitslücken das gesamte Hostsystem als kompromittiert anzusehen, insbesondere wenn der Gitea-Container oder ein eventuell eingebundener Runner &lt;code&gt;rootful&lt;/code&gt; läuft, also mit dem Docker Socket ausgestattet wurde.&lt;/p&gt;&#10;&lt;h3 id="bei-befall-quarantäne"&gt;Bei Befall: Quarantäne&lt;/h3&gt;&#10;&lt;p&gt;Nächste Schritte: Sofort die betroffene Maschine isolieren und vom Netz nehmen. Die Container herunterfahren, Hostmaschine durchbooten und Updates nachladen. Aschließend die Docker Registry auf Stand bringen und über die Logdateien (Zeitstempel!) ermitteln, ob andere Teile des Systems betroffen sind. Für weitere Details siehe &lt;a href="https://blog.schallbert.de/gitea-out-of-memory/"&gt;mein Artikel über einen selbsterlebten Angriff auf Gitea&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h2 id="lösungen"&gt;Lösungen&lt;/h2&gt;&#10;&lt;h3 id="gitea-updaten"&gt;Gitea Updaten!&lt;/h3&gt;&#10;&lt;p&gt;Gitea muss dringend auf eine Version &lt;code&gt;&amp;gt;1.27.1&lt;/code&gt; gebracht werden. Dafür kann beispielsweise die &lt;code&gt;docker-compose.yml&lt;/code&gt; geändert und die Container danach durchgebootet werden:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yml" data-lang="yml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# docker-compose.yml&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;gitea&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;image&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;gitea/gitea:latest&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;container_name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;gitea&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Weitere Informationen zu aktuellen Fixes finden sich auf &lt;a href="https://blog.gitea.com/" target="_blank" rel="noopener noreferrer" class="external-link"&gt;Giteas Blog&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;. Der Major Release auf Version 27 löst eine ellenlange Liste an kritischen Sicherheitslücken. Ich habe in diesem Artikel nur ein paar davon herausgepickt, da sie mein direktes Umfeld betreffen und ihre Ausnutzung bekannt ist.&lt;/p&gt;&#10;&lt;h3 id="gitea-und-runner-rootless-ausführen"&gt;Gitea und Runner &lt;code&gt;rootless&lt;/code&gt; ausführen&lt;/h3&gt;&#10;&lt;p&gt;Führt das Ausnutzen einer Sicherheitslücke zum Verlust von Gitea oder dem Action Runner, sollte nicht auch noch das Hostsystem kompromittiert werden. Der Betrieb in einem Container kann den Schadensumfang deutlich reduzieren. Das Aufsetzen einer &lt;a href="https://blog.schallbert.de/gitea-act-runner-dind/"&gt;&lt;code&gt;rootless&lt;/code&gt;-Lösung habe ich daher hier beschrieben&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h2 id="zusätzliche-maßnahmen-härtung"&gt;Zusätzliche Maßnahmen (Härtung)&lt;/h2&gt;&#10;&lt;h3 id="cve-2026-20896-netzwerkzugriff-erschweren"&gt;CVE-2026-20896: Netzwerkzugriff erschweren&lt;/h3&gt;&#10;&lt;p&gt;Bei den folgenden Schritten folge ich der &lt;a href="https://df00tech.com/detections/CVE-2026-20896#kql" target="_blank" rel="noopener noreferrer" class="external-link"&gt;Empfehlung von d00ftech&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Einfügen des Adressraumes des selbst verwendeten Reverse Proxy. Dafür gilt erst einmal herauszufinden, unter welcher Adresse der Reverse Proxy im Netzwerk erreichbar ist. Auf meinem Server beispielsweise laufen Gitea und Reverse Proxy (Caddy) in Docker. Daher finde ich die IP-Adresse wie folgt:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker inspect caddy &lt;span style="color:#ae81ff"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --format&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;{{range $name, $network := .NetworkSettings.Networks}}{{$name}}: {{$network.IPAddress}}{{&amp;#34;\n&amp;#34;}}{{end}}&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;caddy-proxy: 172.20.0.2&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Dieser Wert wird nun in der &lt;code&gt;gitea/app.ini&lt;/code&gt; eingetragen:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;[security]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;REVERSE_PROXY_LIMIT&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;REVERSE_PROXY_TRUSTED_PROXIES&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;172.20.0.2/32&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start="2"&gt;&#10;&lt;li&gt;Direkten Netzwerkzugriff auf Gitea unter Umgehung des eigenen Reverse Proxy blockieren. Dazu darf der Port von Gitea (meist &lt;code&gt;3000&lt;/code&gt;) nicht in der Portfreigabe beispielsweise der Docker-Konfiguration erscheinen:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yml" data-lang="yml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# docker-compose.yml&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;services&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;gitea&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;ports&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#e6db74"&gt;&amp;#34;3000:3000&amp;#34;&lt;/span&gt; &lt;span style="color:#75715e"&gt;# remove this!&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="cve-2026-59774-gitea-updaten"&gt;CVE-2026-59774: Gitea updaten!&lt;/h3&gt;&#10;&lt;p&gt;Es gibt zwar die Möglichkeit, den org-mode renderer in der &lt;code&gt;app.ini&lt;/code&gt; zu deaktivieren (Siehe &lt;a href="https://docs.gitea.com/next/administration/external-renderers/#appini-file-configuration" target="_blank" rel="noopener noreferrer" class="external-link"&gt;Gitea Documentation&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; zum Thema), der weitaus bessere Weg ist aus meiner Sicht aber das Update von Gitea selbst!&lt;/p&gt;&#10;&lt;h3 id="cve-2026-60004-falls-möglich-self-registration-abschalten"&gt;CVE-2026-60004: Falls möglich Self-Registration abschalten&lt;/h3&gt;&#10;&lt;p&gt;Der eigentliche Fix ist nur durch ein Update der Gitea-Version möglich. Für kleinere Instanzen mit wenigen Usern mag es zusätzlich zweckmäßig erscheinen, die Selbstregistrierung für neue User abzuschalten. Sie müssen eine Registrierung von nun an bei den Administratoren anfragen (sofern sie nicht eine der anderen oben beschriebenen CVEs ausnutzen).&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# gitea/app.ini&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;[service]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;DISABLE_REGISTRATION&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;true&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Weitere hilfreiche Einstellungen sind:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;REGISTER_EMAIL_CONFIRM&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;true # Requires user&amp;#39;s email to be confirmed for registration to complete&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;ENABLE_OPENID_SIGNUP&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;false # Disallow logons via external API&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;REQUIRE_SIGNIN_VIEW&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;true # Force users to login before they can view content or use the public API &lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="ausblick-und-fazit"&gt;Ausblick und Fazit&lt;/h2&gt;&#10;&lt;p&gt;Versionsverwaltungen sind sehr atttraktive Ziele für gleich einen ganzen Strauß an Angreifertypen: Von Cryptominern wegen der Möglichkeit der Ressourcenübernahme über Ransomware-Gruppen wegen der Quellcodedateien und möglicher Zugangsdaten bis hin zu hochprofessionellen, zielgerichteten Angreifern und staatlichen Akteuren dadurch, dass die Software eine Art Infrastruktur darstellt.&lt;/p&gt;&#10;&lt;p&gt;Daher:&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&amp;ldquo;Alle Patches einspielen. Immer. Sofort. Ohne Ausnahmen.&amp;rdquo; - &lt;a href="https://codeberg.org/tomas-jakobs/fefe-blog-backup/src/branch/main/content/assets/hackback/hackback.htm#L509" target="_blank" rel="noopener noreferrer" class="external-link"&gt;Felix von Leitner&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;, sagt aber auch das &lt;a href="https://www.bsi.bund.de/DE/Themen/Verbraucherinnen-und-Verbraucher/Informationen-und-Empfehlungen/Cyber-Sicherheitsempfehlungen/Updates-Browser-Open-Source-Software/Wichtige-Softwareupdates/wichtige-softwareupdates_node.html" target="_blank" rel="noopener noreferrer" class="external-link"&gt;BSI&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;Was mich ein wenig ratlos zurücklässt ist die schiere Zahl und Kritikalität der gestopften Sicherheitslücken (35 CVEs binnen eines Monats laut Giteas eigenem Blog!). Aus meiner blauäugigen Sicherheitsperspektive ist diese Lösung ein Schweizer Käse und ich bin mir nicht sicher, ob ich Gitea weiter betreiben sollte.&lt;/p&gt;&#10;&lt;h3 id="sofort-härtung-durchführen"&gt;Sofort: Härtung durchführen&lt;/h3&gt;&#10;&lt;p&gt;Na klar: Gitea auf &lt;code&gt;latest&lt;/code&gt; bringen und die oben beschriebenen Härtungsmaßnahmen durchführen.&lt;/p&gt;&#10;&lt;h3 id="kurzfristig-automatische-updates"&gt;Kurzfristig: Automatische Updates&lt;/h3&gt;&#10;&lt;p&gt;In den nächsten Tagen und Wochen werde ich mich damit beschäftigen, die Docker Registry automatisch nach Updates für meine Software zu durchsuchen und sie ebenso automatisch auf meinem Server auszurollen. Blog-Post folgt!&lt;/p&gt;&#10;&lt;h3 id="mittelfristig-her-mit-monitoring"&gt;Mittelfristig: Her mit Monitoring&lt;/h3&gt;&#10;&lt;p&gt;Ich werde mich auf die Suche machen nach einer kleinen und leichten Monitoring-Lösung, die Auffälligkeiten wie &amp;ldquo;CPU-Last ungewöhnlich hoch seit HH:MM:SS&amp;rdquo; meldet und &lt;a href="https://oneuptime.com/blog/post/2026-01-06-docker-health-checks/" target="_blank" rel="noopener noreferrer" class="external-link"&gt;healthchecks&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; durchführen und überwachen kann. Dabei darf sie selbst kein Einfallstor dastellen, muss also praktisch ohne Rechte auskommen. Ob das wohl einfach möglich ist?&lt;/p&gt;&#10;&lt;h3 id="mittelfristig-2-weg-mit-den-secrets"&gt;Mittelfristig 2: Weg mit den Secrets&lt;/h3&gt;&#10;&lt;p&gt;Unverschlüsselte Secrets haben in Repositories nichts verloren. Selbst auf dem Server selbst ist eine &lt;code&gt;.env&lt;/code&gt;-Datei, die dort herumliegt, als nicht mehr sicher zu werten. Auch hier werde ich mir Gedanken machen und entsprechend berichten, wenn ich eine Lösung ausgerollt habe.&lt;/p&gt;&#10;&lt;h3 id="mittelfristig-3-news-feeds-einrichten"&gt;Mittelfristig 3: News-Feeds einrichten&lt;/h3&gt;&#10;&lt;p&gt;Hierunter fallen Abos z.B. von Newslettern oder RSS-Feeds idealerweise aller meiner Softwareanbieter, IT-Security-Institutionen oder -Journalisten und weiteren Quellen, aus denen ich Sicherheitslücken, Patches und Maßnahmen zur Systemhärtung entnehmen kann.&lt;/p&gt;&#10;&lt;h3 id="credits"&gt;Langfristig: Mit Leuten weiterhin ins Gespräch gehen&lt;/h3&gt;&#10;&lt;p&gt;Es endet wie es beginnt. Bevor ich Probleme mit meiner Software lösen kann, bevor ich überhaupt von den Problemen weiß, ja genau da! Ganz am Anfang, bevor ich überhaupt entschieden habe, welche Software ich einsetze, da stehen: Andere Menschen.&lt;/p&gt;&#10;&lt;p&gt;Leute, die ich fragen kann, um Hilfe bitten kann. Deren Zeit ich in Anspruch nehmen darf für eigene Belange. Die ich zum Beispiel per Messenger aus dem Nichts heraus anschreibe und aus ihrem Fokus reiße.&lt;/p&gt;&#10;&lt;p&gt;Leute, die sich besser auskennen als ich, die einen anderne Blick auf die Dinge haben, oder deren Meinung ich interessant finde.&lt;/p&gt;&#10;&lt;p&gt;Kolleginnen, auch Ehemalige, Bekannte und Freunde, Familie, die ich zufällig oder zielgerichtet auf einen Austausch treffe. Auf einen Kaffee, ein Eis, ein Kaltgetränk, zum Musizieren oder für einen Brettspielnachmittag.&lt;/p&gt;&#10;&lt;p&gt;Leute, die mir trotz der Unterbrechung und doofer Fragen freundlich und geduldig helfen. Die vielleicht kurz mit den Augen rollen, mir die Dinge dann aber doch noch ein weiteres mal erklären. Die meine Monologe, kritische Nachfragen und gelegentliche Gegenrede irgendwie tolerieren.&lt;/p&gt;&#10;&lt;p&gt;Leute, mit denen ich in einen Austausch treten kann, der am Ende hoffentlich beiden Seiten nützt.&lt;/p&gt;&#10;&lt;p&gt;&lt;figure class="media-frame media-frame--left"&gt;&#10; &lt;img src="https://blog.schallbert.de/assets/images/root/Schallbert.avif" alt="Image: A computer-drawn image of Schallbert, pixelized, and in 256 colors."&gt;&lt;/figure&gt;&#10;Bei euch allen möchte ich mich bedanken. Mit Leuten wie euch wird alles viel einfacher. Auch der Betrieb dieses Blogs, wo so viel meiner Zeit hineingeht. Ich kann mit euch Entscheidungen diskutieren, erfahren wie ihr Dinge gemacht habt und warum genau so, die Perspektiven wechseln. Und neue Ideen entwickeln.&lt;/p&gt;&#10;&lt;p&gt;Bitte bleibt mir erhalten.&lt;/p&gt;&#10;&lt;div class="footnotes" role="doc-endnotes"&gt;&#10;&lt;hr&gt;&#10;&lt;ol&gt;&#10;&lt;li id="fn:1"&gt;&#10;&lt;p&gt;Verweis an &lt;a href="https://de.wikipedia.org/wiki/Fefes_Blog" target="_blank" rel="noopener noreferrer" class="external-link"&gt;&amp;ldquo;Fefe&amp;rdquo; Felix von Leitner&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;. Zitat: &amp;ldquo;Annahmen [&amp;hellip;]: Wir werden angegriffen. Wir merken es zeitnah. Aller Erfahrung nach: Nein, tun wir nicht. Typischer Zeitraum vor Entdeckung von blinden Passagieren: Ein halbes bis fünf Jahre.&amp;rdquo; - aus dem Vortrag &lt;a href="https://codeberg.org/tomas-jakobs/fefe-blog-backup/src/commit/5d0e24d085463a5fc3b852edb589347f6d909a85/content/assets/hackback/hackback.htm#L634" target="_blank" rel="noopener noreferrer" class="external-link"&gt;Hackback&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;, Link führt zu &lt;a href="https://codeberg.org/" target="_blank" rel="noopener noreferrer" class="external-link"&gt;Codeberg&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;</description></item></channel></rss>