Skip to content

Security: amolani/linbo-patchless

Security

SECURITY.md

Sicherheit

Unterstützte Versionen

Bis zu einem ersten stabilen Release wird ausschließlich der aktuelle Stand von main mit Sicherheitskorrekturen versorgt.

Schwachstellen melden

Bitte keine ausnutzbaren Details in einem öffentlichen Issue veröffentlichen. Nutze nach Möglichkeit eine private GitHub Security Advisory unter https://github.com/amolani/linbo-patchless/security/advisories/new. Falls das Repository nicht erreichbar ist, wende dich direkt an den Repository-Eigentümer.

Eine gute Meldung enthält betroffene Version/Commit, Voraussetzungen, Reproduktionsschritte, Auswirkung und – falls vorhanden – einen minimalen Proof-of-Concept ohne echte Zugangsdaten.

Betriebsgrenzen

  • Die Anwendung besitzt bewusst keine eigene Benutzeranmeldung. Ihre API kann Treiberprofile, Dateien und Image-Hooks verändern und gehört deshalb nicht in ein öffentliches Netz. Eine frische Paketinstallation bindet an die automatisch erkannte, konkrete private Adresse des linuxmuster-Servers. Diese Adresse darf nur aus einem vertrauenswürdigen Verwaltungsnetz erreichbar sein. Andernfalls sind ein administrativer SSH-Tunnel oder ein authentifizierender HTTPS-Reverse-Proxy zu verwenden. Der SSH-Tunnel leitet dabei ausschließlich die Patchless-Weboberfläche vom Server zum Administrationsrechner weiter; Patchless erhält dadurch keinen SSH-Zugriff auf LINBO-Clients.
  • HTTP verschlüsselt Uploads und Verwaltungsdaten nicht. Der eingebaute Server terminiert bewusst kein TLS. Der automatisch erkannte LAN-Bind darf deshalb nicht über öffentliche oder unkontrollierte Netze geroutet werden. Alte, implizite 0.0.0.0-Konfigurationen werden beim Update auf localhost migriert, sofern der Betreiber Klartext-Remotezugriff nicht ausdrücklich bestätigt.
  • Hardwaredaten stammen ausschließlich aus den von LINBO auf dem Server abgelegten *_hwinfo.gz-Dateien. Patchless baut keine Verbindung zu LINBO-Clients auf, erzeugt keinen Client-Schlüssel und injiziert keinen Public Key in linbofs.
  • Archive und Dateipfade werden validiert und begrenzt. Uploads dürfen maximal 2 GiB, der entpackte Inhalt standardmäßig maximal 8 GiB groß sein. Vor der Extraktion wird zusätzlicher Speicher für atomischen Import und Rollback reserviert. Trotzdem sollte der freie Platz von /tmp und /srv/linbo überwacht werden.
  • Der Dienst benötigt Schreibzugriff auf Image-Verzeichnisse, um .driverpostsync atomisch zu ersetzen. Die Dateisystem-ACL kann technisch auch qcow2-Dateien umbenennen oder entfernen. Dieser breite Schreibzugriff ist die wichtigste verbleibende serverseitige Privilegienkonzentration; ein eng begrenzter Hook-Writer und ein separater Extraktionsworker sind vor breitem Produktiveinsatz vorgesehen.
  • Vollautomatische Windows-Treiberinstallation setzt den einmalig im Golden Image installierten Task LINBO-Patchless-Driver-Install voraus. Er läuft bei jedem Systemstart als SYSTEM mit höchster Ausführungsstufe und startet nur den fest vorgegebenen Batch unter C:\Drivers\LINBO\pnputil-install.cmd, wenn dieser vorhanden ist.
  • Ein als SYSTEM ausgeführter, von normalen Benutzern beschreibbarer Pfad wäre eine lokale Privilegieneskalation. Das Bootstrap-Skript ersetzt deshalb die ACLs von C:\Drivers und C:\ProgramData\LINBO-Patchless durch explizite Vollzugriffe ausschließlich für SYSTEM und die lokale Administratorengruppe. Der Runner prüft Eigentümer und ACL von Verzeichnis und Batch vor jedem Start und bricht bei einem unprivilegierten Eigentümer, einer fremden Allow-Regel oder einer ungeschützten Root-ACL geschlossen ab. Nach dem ersten realen Restore/Sync müssen Administratoren diese Grenze zusätzlich mit icacls C:\Drivers kontrollieren.
  • Der Hook akzeptiert den SYSTEM-Task nur, wenn sowohl die Taskdatei als auch der exakte, erst nach vollständiger Taskprüfung geschriebene Projektmarker vorhanden sind. Eine verwaiste oder fremde Taskdatei deaktiviert den Fallback nicht. Ohne bestätigten Task wird lediglich !LinboDriverInstall gesetzt; dieser RunOnce-Pfad benötigt eine Administratoranmeldung und ist nicht für einen unbeaufsichtigten Rollout geeignet.
  • Der Startup-Task hilft nicht bei bootkritischen Storage-Treibern: Wenn Windows ohne den Treiber nicht bis zum Task Scheduler startet, muss der Treiber vorab im Golden Image oder offline in das Image integriert werden.
  • Inventardaten können Gerätekennungen enthalten. Die normale API blendet MACs aus; API- und Journalzugriff bleiben dennoch schützenswert.

Secrets, private Schlüssel, reale Seriennummern oder vollständige Schullogs dürfen nicht in Issues, Testfixtures oder Commits gelangen.

There aren't any published security advisories