OpenPAM Nummularia 9.2 through 10.0 does not properly handle the error reported when an include directive refers to a policy that does not exist, which causes the loaded policy chain to no be discarded and allows context-dependent attackers to bypass authentication via a login (1) without a password or (2) with an incorrect password.
OpenPAM Nummularia versiones 9.2 hasta 10.0, maneja inapropiadamente un error reportado cuando una directiva de inclusión hace referencia a una política que no existe, lo que causa que la cadena de políticas cargada no sea descartada y permita a atacantes dependiendo del contexto omitir una autenticación por medio de un inicio de sesión (1) sin contraseña o (2) con una contraseña incorrecta.
The OpenPAM library searches for policy definitions in several locations. While doing so, the absence of a policy file is a soft failure (handled by searching in the next location) while the presence of an invalid file is a hard failure (handled by returning an error to the caller). The policy parser returns the same error code (ENOENT) when a syntactically valid policy references a non-existent module as when the requested policy file does not exist. The search loop regards this as a soft failure and looks for the next similarly-named policy, without discarding the partially-loaded configuration. A similar issue can arise if a policy contains an include directive that refers to a non-existent policy.