Автор Тема: Critical GHOST vulnerability affects most Linux Systems - CVE-2015-0235  (Прочетена 3667 пъти)

mrowcp

  • Напреднали
  • *****
  • Публикации: 450
    • Профил
Става дума за проблем в GNU C Library (glibc), които се ползва в повечето Linux дистрибуции. Buffer overflow намерен в __nss_hostname_digits_dots() функцията в glibc. Повече инфо тук

Засяга доста широка група от приложение:  Apache, Exim, Sendmail, Nginx, MySQL, CUPS, Samba и т.н (при exim дори не било нужно да се отваря писмото с expl-та и прескача защити като ASLR, PIE и NX)

Ето как може да тествате дали сте vuln:

Код
GeSHi (Bash):
  1. (mrowcp@shells) cat > GHOST.c << EOF
  2. #include <netdb.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6. #include <errno.h>
  7.  
  8. #define CANARY "in_the_coal_mine"
  9.  
  10. struct {
  11. char buffer[1024];
  12. char canary[sizeof(CANARY)];
  13. } temp = { "buffer", CANARY };
  14.  
  15. int main(void) {
  16. struct hostent resbuf;
  17. struct hostent *result;
  18. int herrno;
  19. int retval;
  20.  
  21. /*** strlen (name) = size_needed - sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/
  22. size_t len = sizeof(temp.buffer) - 16*sizeof(unsigned char) - 2*sizeof(char *) - 1;
  23. char name[sizeof(temp.buffer)];
  24. memset(name, '0', len);
  25. name[len] = '\0';
  26.  
  27. retval = gethostbyname_r(name, &resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno);
  28.  
  29. if (strcmp(temp.canary, CANARY) != 0) {
  30. puts("vulnerable");
  31. exit(EXIT_SUCCESS);
  32. }
  33. if (retval == ERANGE) {
  34. puts("not vulnerable");
  35. exit(EXIT_SUCCESS);
  36. }
  37. puts("should not happen");
  38. exit(EXIT_FAILURE);
  39. }
  40. EOF

При мен на CentOS 6.2

Код
GeSHi (Bash):
  1. (mrowcp@shells)(~/scripts)>uname -a
  2. Linux shells 2.6.32-220.el6.i686 #1 SMP Tue Dec 6 16:15:40 GMT 2011 i686 i686 i386 GNU/Linux
  3.  
  4. (mrowcp@shells)(~/scripts)>gcc GHOST.c -o GHOST
  5.  
  6. (mrowcp@shells)(~/scripts)>./GHOST
  7. vulnerable

Фикса е в ъпдейт :) Вече има такъв за повечето дистрота.

ЕДИТ: В момента:

Код
GeSHi (Bash):
  1. Installed Packages
  2. Name        : glibc
  3. Arch        : i686
  4. Version     : 2.12
  5. Release     : 1.47.el6_2.12

След ъпдейт до:

Код
GeSHi (Bash):
  1. Name        : glibc
  2. Arch        : i686
  3. Version     : 2.12
  4. Release     : 1.149.el6_6.5
  5.  
  6. (mrowcp@shells)(~/scripts)>./GHOST
  7. not vulnerable
« Последна редакция: Jan 28, 2015, 14:18 от mrowcp »
Активен

Some Things Just Are The Way They Are

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 8917
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Това го видях при блятките, но на мен нищо не ми говори. А защо не го пуснеш в новините?
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

programings

  • Напреднали
  • *****
  • Публикации: 221
  • Distribution: Arch Linux, BunsenLabs Linux, FreeBSD
  • Window Manager: XFCE, MATE, Openbox
    • Профил
Активен

mrowcp

  • Напреднали
  • *****
  • Публикации: 450
    • Профил
Възможно е тази уязвимост да засяга и WordPress CMS заради използването на wp_http_validate_url() функцията. Проверката става с:
Код
GeSHi (Bash):
  1. php -r '$e="0″;for($i=0;$i<2500;$i++){$e="0$e";} gethostbyname($e);' Segmentation fault

Повече инфо тук.
Активен

Some Things Just Are The Way They Are