Dev News Daily ENDE

Hono 4.13.16 schließt fünf Wege, Middleware mit einer Anfrage zu umgehen

Das Web-Framework Hono hat am 1. November Version 4.13.16 mit fünf Sicherheitskorrekturen veröffentlicht, jede mit eigenem GitHub-Advisory. Das Projekt empfiehlt allen, die die betroffenen Funktionen nutzen, dringend das Update.

Die erste betrifft mount() und app.mount(). Ein dynamisches Präfix wie /api/:tenant/ wurde um die Länge des Routenmusters gekürzt, und der weitergeleitete Pfad wurde vom URL-Parser neu normalisiert, sodass ein dekodierter Backslash zum Schrägstrich wurde und „..“ zusammenfiel; beides erlaubte einer präparierten Anfrage, Middleware innerhalb des Mount-Präfixes zu überspringen (GHSA-4m76-xfj5-7975). Routen wie /assets und doppelte Parameternamen lösen jetzt einen Fehler aus. Die zweite steckt im RegExpRouter, der auch hinter dem Standard-SmartRouter arbeitet: Wildcard-Middleware wurde in drei Fällen nicht angewendet, darunter eine Route /prefix* neben Middleware für /prefix/* und ein Pfad mit kodiertem Zeilenende (GHSA-h7mg-cq63-vhpq).

Die übrigen drei: validator('form') erkannte eine multipart/form-data-Anfrage mit zusätzlichem Parameter wie charset nicht als Formular, prüfte also ein leeres Objekt, während der Handler alle Felder lesen konnte (GHSA-4h7h-rv7c-7m2v); der css-Helper maskierte ein schließendes style-Tag nicht, das zwischen Vorlagenteilen und Werten aufgeteilt war (GHSA-3gg2-335m-rxc6); und csrf() prüfte keine POST-Anfragen aus Chromiums Hyperlink-Auditing per a-ping, die als text/ping ankommen (GHSA-46wx-v44x-9hh2). Zudem weist der JWT-Helper nun Signaturen außerhalb des base64url-Alphabets und Header mit crit zurück.

Hono 4.13.16 schließt fünf Wege, Middleware mit einer Anfrage zu umgehen
Hono 4.13.16 schließt fünf Wege, Middleware mit einer Anfrage zu umgehen — Dev News Daily

Was das bedeutet

Vier der fünf Fehler haben dieselbe Form: Eine Prüfung läuft auf einer Darstellung der Anfrage, der Handler sieht eine andere. Diese Fehlerklasse lohnt sich in jedem Router zu testen, nicht nur in Hono. Das Update hat zwei Nebenwirkungen, die man vor dem Deployment kennen sollte: Routenmuster wie /assets* und eigene Muster, die einen leeren String treffen können, lösen bei der Registrierung einen Fehler aus, und Daten für den PreparedRegExpRouter müssen neu erzeugt werden.