Bump version to 0.2.8 to add upstream security hardening

This commit is contained in:
satoshi committed 2026-09-04 14:55:16 +03:00
1 parent 27f3e0e507
commit be31a2fe58
2 files changed
+24 -2

No files matched your search

+21
View File
@@ -0,0 +1,21 @@
import { VersionInfo } from '@start9labs/start-sdk'
export const v0_2_8 = VersionInfo.of({
version: '0.2.8:0',
releaseNotes: {
en_US:
'Security hardening for the dashboard API. The WebSocket that feeds the dashboard, and every request that changes state, now verify that they came from the dashboard itself rather than from another site. Without that check, a web page you happened to visit while signed in to StartOS could have used your browser session to read pool data, including payout addresses, per-worker hashrates and block history, or to trigger admin actions such as zeroing the latency counters or starting a rebuild of the share statistics. Requests that are not browser-driven, such as the Pool Status action or a health probe, are unaffected. Responses now also tell browsers not to sniff content types and not to allow the dashboard to be embedded in a frame, and the share statistics rebuild refuses to start a second run while one is already going. The transaction accelerator was reviewed as part of this and needed no change: it already rejects anything that is not a 64 character transaction id, caps the fee rate at 2000 sat/vB, and passes values to Bitcoin Core as typed parameters.',
es_ES:
'Refuerzo de seguridad de la API del panel. El WebSocket que alimenta el panel, y toda petición que cambie el estado, ahora comprueban que proceden del propio panel y no de otro sitio web. Sin esa comprobación, una página que usted visitara mientras tenía la sesión iniciada en StartOS podría haber usado su navegador para leer datos del pool, incluidas las direcciones de pago, el hashrate por trabajador y el historial de bloques, o para activar acciones de administración como poner a cero los contadores de latencia o iniciar una reconstrucción de las estadísticas de participaciones. Las peticiones que no proceden de un navegador, como la acción Estado del pool o una comprobación de salud, no se ven afectadas. Las respuestas indican además a los navegadores que no deduzcan el tipo de contenido y que no permitan incrustar el panel en un marco, y la reconstrucción de estadísticas se niega a iniciar una segunda ejecución mientras ya hay una en curso. El acelerador de transacciones se revisó como parte de este trabajo y no necesitó cambios: ya rechaza todo lo que no sea un identificador de transacción de 64 caracteres, limita la tarifa a 2000 sat/vB y pasa los valores a Bitcoin Core como parámetros tipados.',
de_DE:
'Sicherheitshärtung der Dashboard-API. Der WebSocket, der das Dashboard versorgt, und jede zustandsändernde Anfrage prüfen jetzt, ob sie vom Dashboard selbst stammen und nicht von einer anderen Website. Ohne diese Prüfung hätte eine Webseite, die Sie bei angemeldeter StartOS-Sitzung besuchen, Ihre Browsersitzung nutzen können, um Pool-Daten auszulesen, darunter Auszahlungsadressen, Hashrate je Worker und Blockhistorie, oder um Admin-Aktionen auszulösen, etwa das Nullsetzen der Latenzzähler oder den Neuaufbau der Share-Statistiken. Nicht browsergesteuerte Anfragen, etwa die Aktion „Pool-Status“ oder eine Health-Prüfung, sind nicht betroffen. Antworten weisen Browser zudem an, Inhaltstypen nicht zu erraten und das Dashboard nicht in einem Frame einzubetten, und der Neuaufbau der Share-Statistiken verweigert einen zweiten Lauf, solange bereits einer läuft. Der Transaktionsbeschleuniger wurde dabei überprüft und benötigte keine Änderung: Er weist alles zurück, was keine 64 Zeichen lange Transaktions-ID ist, begrenzt die Gebühr auf 2000 sat/vB und übergibt Werte typisiert an Bitcoin Core.',
pl_PL:
'Wzmocnienie bezpieczeństwa API pulpitu. WebSocket zasilający pulpit oraz każde żądanie zmieniające stan sprawdzają teraz, czy pochodzą z samego pulpitu, a nie z innej witryny. Bez tej kontroli strona internetowa odwiedzona podczas zalogowania do StartOS mogła wykorzystać sesję przeglądarki do odczytania danych puli, w tym adresów wypłat, hashrate poszczególnych koparek i historii bloków, albo do uruchomienia akcji administracyjnych, takich jak wyzerowanie liczników opóźnień czy rozpoczęcie odbudowy statystyk udziałów. Żądania niepochodzące z przeglądarki, na przykład akcja Stan puli lub kontrola stanu zdrowia, pozostają bez zmian. Odpowiedzi informują ponadto przeglądarki, aby nie zgadywały typu treści i nie pozwalały osadzać pulpitu w ramce, a odbudowa statystyk odmawia uruchomienia drugiego przebiegu, gdy jeden już trwa. Akcelerator transakcji został przy tej okazji sprawdzony i nie wymagał zmian: już wcześniej odrzucał wszystko, co nie jest 64-znakowym identyfikatorem transakcji, ogranicza stawkę do 2000 sat/vB i przekazuje wartości do Bitcoin Core jako parametry typowane.',
fr_FR:
'Renforcement de la sécurité de l’API du tableau de bord. Le WebSocket qui alimente le tableau de bord, ainsi que toute requête modifiant l’état, vérifient désormais qu’ils proviennent bien du tableau de bord et non d’un autre site. Sans cette vérification, une page web visitée pendant que vous étiez connecté à StartOS aurait pu utiliser votre session de navigateur pour lire les données du pool, notamment les adresses de paiement, le hashrate par mineur et l’historique des blocs, ou pour déclencher des actions d’administration comme la remise à zéro des compteurs de latence ou le lancement d’une reconstruction des statistiques de parts. Les requêtes qui ne viennent pas d’un navigateur, comme l’action État du pool ou une sonde de santé, ne sont pas affectées. Les réponses indiquent en outre aux navigateurs de ne pas deviner les types de contenu et de ne pas autoriser l’intégration du tableau de bord dans un cadre, et la reconstruction des statistiques refuse de démarrer une seconde exécution tant qu’une autre est en cours. L’accélérateur de transactions a été revu à cette occasion et n’a nécessité aucune modification : il rejette déjà tout ce qui n’est pas un identifiant de transaction de 64 caractères, plafonne le tarif à 2000 sat/vB et transmet les valeurs à Bitcoin Core sous forme de paramètres typés.',
},
// No data migration in either direction. The change is confined to how
// the service decides whether to answer a request; nothing stored
// changes shape, and a downgrade simply removes the checks again.
migrations: {},
})