Integer signedness error in the... CVE-2009-0887 CNNVD-200903-235

6.6 AV AC AU C I A
发布: 2009-03-12
修订: 2023-11-07

可插拔认证模块(PAM)是用于认证用户的机制,使用在多种Linux版本上。 libpam库在试图认证用户名中包含有unicode/utf-8字符SSH登录请求时没有正确地解析PAM配置文件中的非ascii用户名。 pam_misc.c文件62、65和95行的_pam_StrTok函数存在错误的char-gt;int类型转换,如果字符值大于127就会导致出现负数。例如,在pam_misc.c的95行,代码使用end所指向的当前字符值索引空字符table数组: < } else if (*from) { < /* simply look for next blank char */ < for (end=from; *end && !table[(int)*end]; ++end); *end所返回的字符值默认为有符型的,如果使用非ascii字符(大于127,如utf-8字符),在将其转换为int时会解释为负值。因此,代码从-128到127而不是0到255索引table数组。导致访问表格范围之外或函数栈帧范围之外的内存。

0%
当前有2条漏洞利用/PoC
当前有20条受影响产品信息