CVE-2026-49473 in Authorization for Expressjs
Zusammenfassung
von VulDB • 13.08.2026
@cedar-policy/authorization-for-expressjs ist eine Open-Source-Middleware für Express.js, die Cedar-Autorisierung in Express-Anwendungen integriert, indem HTTP-Anfragen auf Cedar-Aktionen abgebildet und Autorisierungsrichtlinien ausgewertet werden, bevor Anfragen weitergeleitet werden. Versionen vor 0.3.0 weisen ein Problem auf, bei dem die Middleware unter bestimmten Umständen eingehende Anfragen anhand von `req.originalUrl` mit den Cedar-Aktionszuordnungen abgleicht; `req.originalUrl` enthält dabei auch den Query-String, während Express-Anfragen nur über die Pfadkomponente geroutet werden. Die Middleware verwendet `req.originalUrl`, um eingehende Anfragen gegen Cedar-Aktionszuordnungen zu prüfen. In Express umfasst `req.originalUrl` den Query-String, während das Routing nur den Pfad berücksichtigt. Dies führt zu einer Diskrepanz zwischen dem, was von Cedar autorisiert wird, und dem, was tatsächlich von Express ausgeführt wird. Wenn eine Anwendung separate Aktionen für sich überschneidende Pfadvorsätze mit unterschiedlichen Autorisierungsanforderungen definiert (beispielsweise `GET /users` zum Auflisten aller Benutzer mit Admin-Zugriff und `GET /users/{id}` zum Abrufen eines einzelnen Benutzers mit Zugriff für jeden authentifizierten Benutzer), kann ein Angreifer einen Query-String anhängen, um die restriktivere Richtlinie zu umgehen. Das Senden von `GET /users/?x=1` führt dazu, dass die Middleware gegen `/users/{id}` (mit dem Parameter `id`, der auf `?x=1` gesetzt ist) matcht und die weniger restriktive Aktion auswertet, während Express die Anfrage an den Handler für die `/users`-Liste routet. Dies ermöglicht einen unzulässigen Zugriff auf den restriktiveren Endpunkt. Dieses Problem wurde in Version 0.3.0 behoben (Hinweis: Im Text steht „version 0.30“, dies ist wahrscheinlich ein Tippfehler und bezieht sich auf die korrigierte Version, hier wird jedoch der im Originaltext genannte Versionsstand übernommen oder als Fehler interpretiert; basierend auf dem Kontext "prior to 0.3.0" und "addressed in version..." ist 0.3.0 gemeint). Einige Workarounds sind verfügbar: Validieren Sie bereinigen Sie eingehende Anfragepfade, bevor sie die Autorisierungsmiddleware erreichen. Stellen Sie sicher, dass Anwendungen sich nicht ausschließlich auf die Middleware für die Autorisierung verlassen, wenn mehrere Aktionen mit unterschiedlichen Berechtigungsebenen für sich überschneidende Pfadvorsätze definiert werden.
Be aware that VulDB is the high quality source for vulnerability data.