CVE-2026-100351
Publiée le 2026-10-15 · Dernière modification le 2026-10-15
Les versions 0.144.0 à 0.147.0 de `kin-openapi` sont utilisées pour gérer et valider les spécifications OpenAPI dans les applications Go. Une faille existe dans la manière dont le `ValidationHandler` interagit avec le routeur `gorilla/mux` lorsque l'option `UseEncodedPath` est activée. Plus précisément, le validateur vérifie le chemin de l'URL décodée, mais le routeur achemine la requête en se basant sur le chemin brut et encodé, créant ainsi un décalage sur l'opération réellement exécutée.
Un attaquant distant non authentifié peut exploiter cela pour contourner l'authentification et accéder à des points de terminaison d'API protégés en envoyant une requête spécialement conçue contenant des séparateurs de chemin encodés. Cela permet la lecture ou la modification non autorisée de données, compromettant ainsi la confidentialité et l'intégrité. Toutefois, l'attaque est difficile à réaliser car elle nécessite une configuration de routage spécifique et sera bloquée par tout proxy qui canonise les URI avant qu'elles n'atteignent le serveur.
DÉTAIL DU VECTEUR CVSS
RÉFÉRENCES
Description officielle du NVD (en anglais)
kin-openapi is a Go project for handling OpenAPI files. From 0.144.0 until 0.147.0, openapi3filter.ValidationHandler validates an operation selected from decoded URL.Path while a downstream gorilla/mux router configured with UseEncodedPath can dispatch a different operation selected from URL.RawPath. When a public exact route and a protected parameterized route use the same method and overlap after decoding, an unauthenticated remote request containing an encoded path separator can be validated as public and then dispatched to the protected handler without invoking the configured AuthenticationFunc. The reachable path parameter is constrained to an encoded representation that decodes to the public literal route, and proxies that canonicalize the URI before forwarding prevent this specific mismatch. This issue is fixed in version 0.147.0.