Re: [PATCH] arm: ptrace: fix syscall modification under PTRACE_O_TRACESECCOMP

From: AKASHI Takahiro
Date: Thu Jul 03 2014 - 03:43:24 EST


Hi Will,

On 06/24/2014 05:54 PM, Will Deacon wrote:
On Mon, Jun 23, 2014 at 08:46:52PM +0100, Kees Cook wrote:
On Mon, Jun 23, 2014 at 1:46 AM, Will Deacon <will.deacon@xxxxxxx> wrote:
On Fri, Jun 20, 2014 at 07:10:46PM +0100, Kees Cook wrote:
On Fri, Jun 20, 2014 at 10:36 AM, Kees Cook <keescook@xxxxxxxxxxxx> wrote:
On Fri, Jun 20, 2014 at 10:23 AM, Will Deacon <will.deacon@xxxxxxx> wrote:
Right, gotcha. Thanks for the explanation. I was confused, because
tracehook_report_syscall does the right thing (returns
current_thread_info()->syscall), but if we don't have TIF_SYSCALL_TRACE set,
then updates during the secure_computing callback will be ignored.re

However, my fix to this is significantly smaller than your patch, so I fear
I'm still missing something.

Oh, yes, that's much smaller. Nice! I will test this and report back.

Yup, I can confirm this works. Thanks!

Tested-by: Kees Cook <keescook@xxxxxxxxxxxx>

Thanks, Kees. I'll post a patch shortly. I'll try and remember to keep an
eye out for this when seccomp lands for arm64 too.

Great, thanks!

What's the state of seccomp on arm64? I saw a series back in March,
but nothing since then? It looked complete, but I haven't set up a
test environment yet to verify.

I think Akashi was going to repost `real soon now' so we can include them
for 3.17. He missed the merge window last time around.

I took a quick look at the current implementation of ptrace.
ptrace(PTRACE_GETREGSET/SETREGSET), eventually gpr_get/set(), handles only 'struct user_pt_regs',
and we have no way to modify orig_x0 nor syscallno in 'struct pt_regs' directly.
So it seems to me that we can't change a system call by ptrace().
Do I misunderstand anything?

-Takahiro AKASHI


Will

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/