Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Mon, 6 Aug 2012 09:48:50 +0200
From: Marcus Meissner <>
To: OSS Security List <>
Subject: CVE Request: Linux kernel net/rds max socket length checking


Kernel memory information leak in the RDS protocol.
(commit also has a testcase);a=commitdiff;h=06b6a1cf6e776426766298d055bb3991957d90a7

Ciao, Marcus

commit 06b6a1cf6e776426766298d055bb3991957d90a7
Author: Weiping Pan <>
Date:   Mon Jul 23 10:37:48 2012 +0800

    rds: set correct msg_namelen
    Jay Fenlason ( found a bug,
    that recvfrom() on an RDS socket can return the contents of random kernel
    memory to userspace if it was called with a address length larger than
    sizeof(struct sockaddr_in).
    rds_recvmsg() also fails to set the addr_len paramater properly before
    returning, but that's just a bug.
    There are also a number of cases wher recvfrom() can return an entirely bogus
    address. Anything in rds_recvmsg() that returns a non-negative value but does
    not go through the "sin = (struct sockaddr_in *)msg->msg_name;" code path
    at the end of the while(1) loop will return up to 128 bytes of kernel memory
    to userspace.
    And I write two test programs to reproduce this bug, you will see that in
    rds_server, fromAddr will be overwritten and the following sock_fd will be
    Yes, it is the programmer's fault to set msg_namelen incorrectly, but it is
    better to make the kernel copy the real length of address to user space in
    such case.

Open Linux Security Engineer Position at SUSE:

Powered by blists - more mailing lists

Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.