Hay un error en la implementación de Base32 en Apache Commons Codecs:
Ejemplo, no hay un valor de matriz de bytes que pueda codificarse en el cadena "C5CYMIHWQUUZMKUGZHGEOSJSQDE4L ===", pero la Base32 existente La implementación no la rechazaría, sino que la descodificaría de forma arbitraria. valor que si se recodificara nuevamente usando la misma implementación sería resulta en la cadena "C5CYMIHWQUUZMKUGZHGEOSJSQDE4K ===".
En lugar de descodificar a ciegas la cadena no válida, el códec Base32 debe rechazarlo (por ejemplo, lanzando IlleglArgumentException) para evitar explotación de la seguridad (como la información adicional de túneles a través de cadenas de 32 bases aparentemente válidas).
Lo que no entiendo es cómo puede un atacante usar este error para canalizar información adicional. El atacante envía una cadena base32 no válida y obtiene una cadena base32 ligeramente diferente. ¿Qué daño puede causar?