patchpanel: Prevent ConnectNamespace from allowing privileged PIDs.

Block PID 1 and the PID of the patchpanel process.

BUG=b:174735412
TEST=unit

Change-Id: Ic1eaed424d697851aed9931d80cb2895d7b2e73f
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform2/+/2571141
Tested-by: Garrick Evans <garrick@chromium.org>
Reviewed-by: Hugo Benichi <hugobenichi@google.com>
Commit-Queue: Garrick Evans <garrick@chromium.org>
diff --git a/patchpanel/manager.cc b/patchpanel/manager.cc
index 5d611d7..a093891 100644
--- a/patchpanel/manager.cc
+++ b/patchpanel/manager.cc
@@ -824,6 +824,11 @@
   }
 
   pid_t pid = request.pid();
+  if (pid == 1 || pid == getpid()) {
+    LOG(ERROR) << "ConnectNamespaceRequest: privileged namespace pid " << pid;
+    writer.AppendProtoAsArrayOfBytes(patchpanel::ConnectNamespaceResponse());
+    return dbus_response;
+  }
   {
     ScopedNS ns(pid);
     if (!ns.IsValid()) {