Re: [PATCH] seccomp: Add SECCOMP_CLONE_FILTER operation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 9/4/25 8:54 AM, Al Viro wrote:
On Thu, Sep 04, 2025 at 08:26:30AM -0600, Tom Hromatka wrote:

This snippet addresses the double irq issue.  I also added a
check to make sure that task != current.  (A user shouldn't
do that but who knows what they'll actually do.)

         if (task == current) {
                 put_task_struct(task);
                 return -EINVAL;
         }

         spin_lock_irq(&current->sighand->siglock);
         spin_lock(&task->sighand->siglock);

What do you expect to happen if two tasks do that to each other
at the same time?

As written, they'll deadlock sooner or later :(.

But that should be easy to fix by adding two checks prior to
grabbing locks:
1.  Check that the source has 1 or more seccomp filters
2.  Check that the target has 0 seccomp filters.

This would ensure that for the same two processes, there's
only one way the locks could be grabbed.


Or, for that matter, if task has been spawned
by current with CLONE_VM | CLONE_SIGHAND?

Don't know right off hand.  I'll look into it.

Thanks for the help!

Tom




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux