
T3 Code 61c3794c Supply-Chain-Überbleibsel. Der Updater verifiziert SHA256SUMS von derselben Origin wie das Archiv. Keine Signatur. Loopback-Lab.
Der Updater prüft eine SHA-256-Datei, die neben dem Download liegt. Wer den Download-Host übernimmt, übernimmt auch die Prüfsumme. Auf diesem Pfad gibt es keine Signatur. Versehentliche Korruption schlägt weiterhin fehl. Ein ausgetauschtes Paar aus derselben Origin wird installiert.
Klasse: Supply Chain
Reichweite: Supply Chain (wer auch immer releaseBaseUrl kontrolliert)
T3 Code 61c3794c - Ping
| ID | noch keine CVE |
| Klasse | Supply Chain |
| Reichweite | Supply Chain (kompromittierter Release-Host, CDN oder DNS/TLS auf dieser Origin) |
| CWE | CWE-345 / CWE-494 |
| CVSS | Mittel: 6.8 CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H |
| Produkt | T3 Code |
| Betroffen | 61c3794c32b0eeebfac09add43e403618c65d2d7 |
| Auth | keine beim Opfer, sobald der Publisher übernommen ist; das Opfer führt eine Installation oder ein Update aus |
| Lizenz | GNU Affero GPL v3.0 |
| Lab | Loopback-Publisher 127.0.0.1:18192; tar gemockt, sodass Archiv-Bytes nie ausgeführt werden |
Benötigt die Kontrolle über die Origin, die sowohl SHA256SUMS als auch das Archiv ausliefert (releaseBaseUrl / GitHub Releases für diesen Build). Benötigt kein T3-Konto beim Opfer.
| Privileg | Methode / Sink | Recon / Integrität / Verfügbarkeit | Im Lab nachgewiesen oder abgeleitet |
|---|---|---|---|
| Passendes Archiv + Prüfsumme aus einer Origin veröffentlichen | ensurePinnedRuntimeInstalled ruft ${baseUrl}/SHA256SUMS und dann ${baseUrl}/${fileName} ab, SHA-256-Vergleich | Integrität (akzeptierte Installation) | Im Lab nachgewiesen. checksum-pass=1, Witness t3f02s9m4 in beiden Dateien |
| Self-Update / Boot-Service über denselben Helper steuern | selfUpdate.ts, bootService.ts übergeben releaseBaseUrl | Integrität | Quellcode. Lab rief den Helper direkt auf |
| Das installierte Binary nach dem Entpacken ausführen | tar -xf und dann t3 ausführen | Integrität / Verfügbarkeit | Abgeleitet. Lab mockte tar und führte keine Bytes aus |
| Negativkontrolle: nicht passende Prüfsumme | derselbe Helper, Nullen in SHA256SUMS | n/a | Im Lab nachgewiesen. Schritt verifying the t3 release archive checksum |
Bleibt bei diesem Restrisiko geschlossen
| Achse | Methode / Sink | Warum es geschlossen ist |
|---|---|---|
| Integrität | Versehentlicher Bit-Flip während der Übertragung | SHA-256-Mismatch verweigert das Entpacken |
| Integrität | Unsigned extra origin | Lab verwendete eine Base-URL; eine zweite Origin wird nie konsultiert, da keine existiert |
| Integrität | Dieses Lab führt Angreifer-Bytes aus | tar gemockt; extracted-binary-executed=0 |
signature-check=0 beim Download+Digest-Block und bei den Aufrufern von Self-Update / Boot-Service (kein minisign, cosign, GPG oder sigstore).
pinnedRuntime.ts baut beide URLs aus cliReleaseDownloadBaseUrl. In-Tree-Tests sichern bereits ab, dass Same-Origin-Prüfsummen durchgehen und Mismatches fehlschlagen. Sie verlangen keine Signatur.
Irrwege: eine Prüfsumme als Authentifizierung des Publishers zu behandeln.
python3 t3code-release-checksum-same-origin-Abraxas-Labs.py
oder:
cd lab
./run.sh
Loopback-HTTP-Publisher auf 127.0.0.1:18192. Produktions-ensurePinnedRuntimeInstalled verwendet Effect fetch gegen diesen Origin. Passende Paar-Installationen (gemocktes Extrahieren). Nicht passendes Paar stoppt bei der Verifizierung.
IOC loopback-bound=127.0.0.1:18192
IOC same-origin=1
IOC checksum-pass=1
IOC checksum-fail=1
IOC signature-check=0
IOC tar-mocked=1
IOC extracted-binary-executed=0
SUCCESS T3-F02-CHECKSUM t3f02s9m4
Signiere das Prüfsummen-Manifest (minisign, cosign oder GPG) und bette den öffentlichen Schlüssel in die Binärdatei ein. Verifiziere die Signatur, bevor SHA256SUMS geparst wird. Fixiere den Release-Ursprung auf eine unveränderliche signierte Referenz.
61c3794c32b0eeebfac09add43e403618c65d2d7pinnedRuntime.ts Download+DigestGNU Affero GPL v3.0. Siehe LICENSE. Nur Loopback-Lab. Keine Gewährleistung.
Abraxas Labs [email protected]
Bitte schreibe die CVE Abraxas Labs zu.