-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

here are patches "claimed" to fix Linux-2.6.23.14 vmsplice localroot exploit
I just copied them and have not had time to buy beer and chocolate for testing.
There is only a small amount of code to change, so it is better to do manually.
Just need to edit linux-2.6.23.14/fs/splice.c . make a backup.

splice1.patch


diff --git a/fs/splice.c b/fs/splice.c
index 02c39ae..2aa8f5a 100644
- --- a/fs/splice.c
+++ b/fs/splice.c
@@ -1234,6 +1234,9 @@ static int copy_from_user_mmap_sem(void *dst, const void
__user *src, size_t n)
 {
        int partial;

+       if (!access_ok(VERIFY_READ, src, n))
+               return -EFAULT;
+
        pagefault_disable();
        partial = __copy_from_user_inatomic(dst, src, n);
        pagefault_enable();
@@ -1442,6 +1445,11 @@ static long vmsplice_to_user(struct file *file, const
struct iovec __user *iov,
                        break;
                }

+               if (unlikely(!access_ok(VERIFY_WRITE, base, len))) {
+                       error = -EFAULT;
+                       break;
+               }
+
                sd.len = 0;
                sd.total_len = len;
                sd.flags = flags;



splice_2.patch


diff --git a/fs/splice.c b/fs/splice.c
index 2aa8f5a..1a9c0e6 100644
- --- a/fs/splice.c
+++ b/fs/splice.c
@@ -1289,7 +1289,7 @@ static int get_iovec_page_array(const struct iovec __user
*iov,
                if (unlikely(!len))
                        break;
                error = -EFAULT;
- -             if (unlikely(!base))
+               if (!access_ok(VERIFY_READ, base, len))
                        break;

                /*



Marty B.

- --
Putting Microsoft in a computer is like putting screen doors in a submarine.
Hopeless.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)

iD8DBQFHu3l3odd/GHZYnVQRAjt0AKCF5a5lL24vLy2A2mkYQRXO7BnmdACgwHi2
VOglHJAld0vGmSCtriutPWI=
=O4tI
-----END PGP SIGNATURE-----
-- 
http://linuxfromscratch.org/mailman/listinfo/hlfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to